<< 12-04-2017 >>

00:04:42FromGitter<Varriount> ldlework: But it's so safe *and* performant! I mean, it's not like there are any other languages that are safe and performant! ;P
00:05:41zachcarterA rust user got mad at me in irc a few months ago when I started using Nim
00:05:51FromGitter<Varriount> Surely a unintuitive syntax is a small price to pay for such unique features.
00:06:18zachcarterI was espousing nim in a roguelike dev chat
00:06:23zachcarterirc channel I mean
00:06:58zachcarterand he got all salty and was like “I don’t feel like I’ve wasted any time that I’ve spent over the past year and a half learning Rust”
00:07:51zachcarteryeah Rust is not a fun language to write code in
00:08:04zachcarterfeels very rusty, lots of friction
00:08:08zachcarteraptly named
00:08:44FromGitter<Varriount> I won't claim that Nim does parallelism as well as Rust, or that it's *as* safe.
00:09:28FromGitter<Varriount> But the level of safety is sufficient for most applications, and the parallelism is improving.
00:09:55zachcarterone language I am interested in taking a look at once it matures a bit is pony
00:11:26krux02pony? I've never heared of that one
00:11:46zachcarterhttps://www.ponylang.org/learn/
00:12:03zachcarterhttps://www.ponylang.org/discover/
00:12:04zachcartersorry
00:12:06zachcartermeant to link that
00:14:12krux02well I got it googled
00:14:24zachcarterah :P
00:14:48krux02what is so interesting about it?
00:15:28krux02I developed a lot in Scala, and it is amazing how much more fun it is to program when the friction is lowered
00:15:49zachcarteryeah I don’t think I would like it more than Nim
00:16:14zachcarterbut it’s another safe object oriented language, so it’s on my radar, I don’t think I’ll ever get away from object oriented languages at work
00:16:24krux02And I looked at rust, and it seems like all the functional programming patterns I used in Scala are covered, unlike Nim. The only reason I decided against Rust was the limited metaprogramming
00:17:05krux02but now it is also that I am already invested in Nim and I actually do like it despite the things that do not work yet as I would like them to work
00:17:20zachcarter^
00:18:11krux02I for my side am done with object oriented programming
00:18:23zachcarterI wish I could be
00:19:15krux02if object oriented, then Scala
00:20:37krux02slow compilation, a horrible build system (sbt), very high memory consumption, but an amazing language with a great type system
00:21:30krux02then there is the jai programming language
00:21:44krux02and maybe at some point in time I would like to do something in D
00:21:48FromGitter<Varriount> I like Nim because of static compilation + indentation syntax
00:22:10krux02Varriount: why is indentation syntax so important to you?
00:22:20krux02for me it was a reason I did not like Nim initially
00:22:37FromGitter<Varriount> My first programming language was Python, so preference.
00:23:10FromGitter<Varriount> Actually, I probably wouldn't have minded braces. It was the lack of forced semicolons that was attractive too.
00:24:09FromGitter<Varriount> "Hey, how about we require semicolons, because the circumstances where people want to merge two lines occurs *so* often!"
00:24:58zachcarterokay this is my lack of comp-sci background kicking in
00:25:11zachcarterbut what do you refer to this type of construct as and is Nim ever going to get it?
00:25:16krux02I like it, too, when the screen has little visual noise, and semicolons empty () and &operators everywhere are definitively a lot of visual noise
00:25:17zachcartervar a = b = 1
00:25:36FromGitter<Varriount> zachcarter: Uh.. I don't know if it has a name. Nested assignment, maybe?
00:25:54krux02well I do not like "var a = b = 1" at all.
00:25:58FromGitter<Varriount> zachcarter: Try `var a, b = 1`
00:26:11zachcarterI’m looking at code like :
00:26:53zachcartersec trying to find some haha
00:27:50krux02I think an assignment should not be an expression at the same time, an assignment should be a statement
00:28:23zachcarterhttps://github.com/SquidPony/SquidLib/blob/master/squidlib-util/src/main/java/squidpony/squidmath/PermutedRNG.java#L99
00:28:25zachcartersomething like that
00:28:32*arnetheduck joined #nim
00:31:29FromGitter<Varriount> Ugh, that's horrible.
00:32:09FromGitter<Varriount> zachcarter: assuming, 'a' and 'b' are already defined, I believe you can do that.
00:32:27zachcarterah okay
00:32:54krux02http://ix.io/qm7
00:33:26krux02Since I programmed Scala I try to use as little variables with state as possible
00:33:38krux02it is much easier to give names to values that do not have state
00:33:39zachcarteryup
00:33:47zachcarterthat’s why that code is like that I think
00:33:56krux02then the meaning is much better defined, because it doesn't change
00:34:18krux02I mean there is a state variable, I think that's ok
00:34:27zachcarteroh I see what you mean
00:34:38krux02One shouldn't berequired to put that in monads
00:34:46zachcartermy ship generator for a 256x256 map is taking 0.306405 seconds
00:34:49zachcarternot bad
00:34:51krux02and I like that it is called state
00:35:12krux02what kind of ship?
00:35:16krux02do you have a screenshot?
00:36:07zachcartersure
00:36:23zachcarteralthough I’m not rendering it yet
00:36:28zachcarterjust a minimap
00:36:41zachcarterlet me find one I like :P
00:36:45krux02is ok i like abstract graphics
00:37:25krux02I played dwarf fortress :P
00:39:00zachcarterhttp://imgur.com/a/5iuTz
00:39:20zachcarterthey’re very organic looking
00:39:23zachcarterand shouldn’t be that squished
00:39:37zachcarterI need to scale them down in the minimap image
00:40:20krux02well I can't detect a lot, looks to me like ink on a folded paper
00:40:40krux02:P
00:40:42FromGitter<Varriount> rorschach inkblot test
00:40:56zachcarterhehe yeah
00:41:08zachcarterthey look better once they’re in game
00:41:44krux02yea just add a lot of fancy filters :P
00:42:22krux02some hdr, bloom, physically based rendering, fur simulation, and organic trees
00:42:28zachcarterahahhaa
00:42:45zachcarterdon’t know about all that but
00:43:16FromGitter<Varriount> don't forget dynamic texture generation
00:43:22krux02well I know so much about 3D rendering that I think again, "yea a triangle how nice"
00:43:41zachcarterVarriount: I may do some of that
00:43:51krux02multitexturing
00:43:58zachcarterI’ll probably be doing my world maps too in Nim
00:44:12zachcarterbut I have a stupid amount of Java code to port first
00:44:22*ftsf joined #nim
00:44:45zachcarterokay I need to write this A* algo now
00:45:12krux02and you think nim with its infancy of tools is still better than Java with these super advanced refactoring ides?
00:45:55krux02yay A* who has never written at least something similar?
00:46:47zachcarterI think the JVM has the best set of IDEs
00:46:51zachcarterthen VS Studio
00:47:17zachcarteryou can spend 1 minute and a half watching them spin up too
00:48:26krux02well I learned from Scalar, that a good language really makes up for an IDE
00:50:11zachcarteryeah
00:50:30krux02Just as an example, in Java you let the IDE generate you getters and setters and you feel super amazing because you were able to use your IDE and let it do the work for you. And then you do Scala and you realize that you don't need the getters/setters in the first place
00:50:59krux02I think Nim here is similar
00:51:27krux02I can have a member foo, or a "getter" proc called foo
00:52:16krux02But honestly I just wanna punch people whe teach about the importance of getters and setters
00:55:58FromGitter<Varriount> krux02: I'm automatically interested in any language I can easily write in *on* my phone.
01:04:15*rauss joined #nim
01:04:41krux02Varriount: well I am pretty sure there is an app wher you can use your phone as a remote control with keyboard for you PC :P
01:05:08krux02technically that is writing *on* your phone
01:10:35FromGitter<Varriount> krux02: Sure, but would the language still be friendly enough for that kind of typing?
01:13:39ftsfcoding with T9
01:23:40FromGitter<Varriount> Python, Nim, and maybe C are the three main languages I've been able to type on my phone.
01:57:29*chemist69 quit (Ping timeout: 240 seconds)
01:58:30*Jesin quit (Quit: Leaving)
02:03:18*krux02 quit (Remote host closed the connection)
02:11:41*chemist69 joined #nim
02:57:06zachcartergot my old java demo working : http://imgur.com/a/mLUMn
02:58:00FromGitter<Varriount> zachcarter: Woo!
02:58:30zachcarternow I have a good reference for this port :D
03:03:35*Nobabs27 quit (Quit: Leaving)
03:05:29*brson quit (Ping timeout: 255 seconds)
03:10:46FromGitter<Varriount> zachcarter: Any story ideas for your roguelike?
03:11:29zachcarterunfortunately Im not too great in that department, something about exploring derelict alien spaceships / worlds
03:12:07zachcarterand collecting resources
03:12:13zachcarterto get home
03:12:15zachcarteror something
03:12:32zachcarterI haven’t thought too much into story, only a bit into a gameplay, a lot into generating stupid things :P
03:12:52zachcarterI have also worked out some critical portions of game code, like a turn scheduling system, etc
03:17:06FromGitter<Varriount> zachcarter: You might like this: http://www.asceai.net/meritous/
03:17:44zachcarterdid you make this?
03:18:06FromGitter<Varriount> Nope. But I've played it several times over the years.
03:18:14zachcarterah cool :D I’ll check it out seems neat
03:18:38FromGitter<Varriount> I found it all the way back in 2008
03:20:01FromGitter<Varriount> It's not turn based, but real-time, so you might not think of it as a true 'roguelike'
03:20:11FromGitter<Varriount> But I found it fun anyway. :D
03:20:18zachcarteryeah a lot of roguelike games do that
03:45:05*Jesin joined #nim
05:04:05*brson joined #nim
05:18:54*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
05:23:14*vivus quit (Quit: Leaving)
05:53:28*yglukhov joined #nim
05:58:31*rokups joined #nim
06:13:06ldleworkzachcarter: did you look at Entitas at all?
06:21:53*rauss quit (Quit: WeeChat 1.7)
06:24:03*dexterk quit (Read error: Connection reset by peer)
06:24:37*brson quit (Ping timeout: 240 seconds)
06:24:56*dexterk joined #nim
06:31:01*yglukhov quit (Remote host closed the connection)
06:36:45*nsf joined #nim
06:54:25*gsingh93 quit (Ping timeout: 260 seconds)
06:54:55*pleiosau1 quit (Ping timeout: 268 seconds)
06:55:21*bbl__ quit (Ping timeout: 260 seconds)
06:55:22*pleiosaur joined #nim
06:55:33*Gonzih quit (Ping timeout: 268 seconds)
06:55:49*kier quit (Ping timeout: 260 seconds)
06:55:49*joebo quit (Ping timeout: 260 seconds)
06:56:09*_yeeve quit (Ping timeout: 268 seconds)
06:56:10*abeaumont quit (Ping timeout: 268 seconds)
06:56:39*_yeeve joined #nim
06:57:19*gsingh93 joined #nim
06:58:44*joebo joined #nim
06:59:08*Gonzih joined #nim
06:59:47FromGitter<TiberiumPY> There's A* for Nim already
07:00:15*kier joined #nim
07:01:31*bbl__ joined #nim
07:08:09FromGitter<Bennyelg> Anyone accomplish go to definition ?! ATOM/Aforia/vs code none of them work
07:09:22*Vladar joined #nim
07:17:32*couven92 joined #nim
07:23:50*yglukhov joined #nim
07:27:06ldleworkIs there a way to do a bitfield
07:37:00*arnetheduck quit (Remote host closed the connection)
07:43:18*arnetheduck joined #nim
07:43:50*nightmared quit (Ping timeout: 240 seconds)
07:44:34*nightmared joined #nim
07:53:25*couven92 quit (Quit: Leaving)
07:54:21*ftsf quit (Quit: :q!)
08:03:18FromGitter<Varriount> ldlework: Sets?
08:03:53FromGitter<Varriount> @Bennyelg Sublime Text's heuristic "go to definition" works
08:04:16FromGitter<Varriount> zachcarter: I think the first game I would make with your framework would be a clone of Meritous
08:04:37FromGitter<Varriount> The original's source code is freely available.
08:24:49*gokr joined #nim
08:37:50euantorThis may be of interest given the earlier discussion about a Nim sandbox: https://idea.popcount.org/2017-03-28-sandboxing-lanscape/
08:40:17euantorAlso of potntial interest is some background on the Go playground: https://blog.golang.org/playground
08:43:10*Arrrr joined #nim
08:43:10*Arrrr quit (Changing host)
08:43:10*Arrrr joined #nim
08:54:42*abeaumont joined #nim
09:11:25*erwana[m] quit (Remote host closed the connection)
09:11:26*M-Quora quit (Write error: Connection reset by peer)
09:11:26*ehmry[m] quit (Read error: Connection reset by peer)
09:11:26*stisa quit (Read error: Connection reset by peer)
09:11:27*TheManiac quit (Read error: Connection reset by peer)
09:11:27*Jipok[m] quit (Remote host closed the connection)
09:11:29*jivank[m] quit (Read error: Connection reset by peer)
09:11:29*dyce[m] quit (Write error: Connection reset by peer)
09:11:29*Guest73656[m] quit (Remote host closed the connection)
09:11:30*MrAxilus[m] quit (Write error: Connection reset by peer)
09:11:30*hohlerde quit (Write error: Connection reset by peer)
09:12:46FromGitter<stisa> euantor: Also maybe this for a starting point https://github.com/theduke/nim-playground
09:13:27euantorInteresting, thank
09:13:31euantor*thanks
09:13:49*vlad1777d joined #nim
09:14:02*dyce[m] joined #nim
09:18:42*M-Quora joined #nim
09:18:42*ehmry[m] joined #nim
09:18:42*MrAxilus[m] joined #nim
09:18:48*TheManiac joined #nim
09:18:48*Jipok[m] joined #nim
09:18:48*hohlerde joined #nim
09:18:49*stisa joined #nim
09:18:49*jivank[m] joined #nim
09:18:49*Guest73656[m] joined #nim
09:19:18*erwana[m] joined #nim
09:20:11*Vladar quit (Remote host closed the connection)
09:24:53*Vladar joined #nim
09:26:51*kn0t[at]work joined #nim
09:29:43ldleworkHow do you create a ptr to a tuple type?
09:31:58ldleworkhrmmm
09:32:24Arrrrptr[(int, int)] ?
09:32:31ldleworkthis wants ptr Rects but I dunno how you create em
09:32:34ldleworkhttps://github.com/nim-lang/sdl2/blob/master/src/sdl2.nim#L1001
09:32:39ldleworkwhat
09:33:05Vladarvar rect1: Rect
09:33:08Vladaraddr(rect1)
09:33:43ldleworkoh
09:34:45ldleworknice it works
09:34:47ldleworkthanks Vladar
09:34:56Vladarnp
09:37:18ldleworkhttps://zippy.gfycat.com/VengefulQuarterlyHectorsdolphin.webm
09:38:10ldleworkI bet I have so many allocations
09:38:49*bjz joined #nim
09:46:50*Vladar quit (Remote host closed the connection)
09:49:55*kn0t[at]work quit (Quit: leaving)
09:54:07*Vladar joined #nim
09:57:45*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
10:00:01*bjz joined #nim
10:16:27*Vladar quit (Remote host closed the connection)
10:19:20zachcarterIdlework: I did it looks nice
10:19:34*Vladar joined #nim
10:20:56zachcarterVarriount: I bet you could clone Meritous just using Nimgame, but I could give it a shot
10:20:59zachcarterit looks like a cool game
10:21:03zachcarterhaven’t looked at the code yet at all
10:22:35zachcarterTiberium: any chance you could point me to it? also does it come with djikstra maps?
10:23:37*ftsf joined #nim
10:24:19zachcarterI’m thinking about recruiting some more help for frag
10:24:27zachcarterif anyone is interested, please let me know
10:25:08zachcarterespecially help with sample games and some relatively easy core stuff, like colission etc
10:25:21zachcartercollision*
10:56:30*shashlick quit (Ping timeout: 240 seconds)
10:57:53*shashlick joined #nim
11:04:12*Snircle joined #nim
11:06:37*cspar quit (Ping timeout: 240 seconds)
11:29:04*cspar joined #nim
11:34:49FromGitter<Bennyelg> I cant get any editor to make autocompletion / go to definition
11:34:54FromGitter<Bennyelg> this is annoying.
11:36:42ArrrrEmbrace anarchy
11:36:52euantorWhich editors have you tried, and what OS?
11:37:18euantorVisual Studio Code just works for me on both WIndows and Mac, and Sublime Text 3 works pretty well too
11:40:34*ftsf quit (Remote host closed the connection)
11:47:56*BitPuffin|osx joined #nim
11:51:06FromGitter<TiberiumPY> can you guys maybe upvote nim? https://replit.canny.io/languages-requests/ I don't know if this will help, but we'll see :)
11:53:33FromGitter<TiberiumPY> (i got an email from repl.it newsletter 1 hour ago)
11:58:05*zachcarter quit (Quit: zachcarter)
12:00:21*zachcarter joined #nim
12:05:13*zachcarter quit (Ping timeout: 260 seconds)
12:11:10*zachcarter joined #nim
12:11:33zachcarterdone
12:13:03*Jehan_ joined #nim
12:13:52*zachcarter quit (Client Quit)
12:16:12*bjz_ joined #nim
12:17:49*bjz quit (Ping timeout: 260 seconds)
12:18:09*ftsf joined #nim
12:22:51*Jehan_ quit (Quit: Leaving)
12:25:54FromGitter<Bennyelg> Voted.
12:28:02*Lord_Nightmare quit (Ping timeout: 240 seconds)
12:34:51FromGitter<Bennyelg> My Atom configuration ⏎ ⏎ `````` [https://gitter.im/nim-lang/Nim?at=58ee1eee408f90be66b2d070]
12:35:16FromGitter<Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58ee1f0708c00c092a7309e3]
12:35:19FromGitter<Bennyelg> nim: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58ee1f0af22385553d33a8df]
12:35:42*ftsf quit (Read error: Connection reset by peer)
12:35:56*ftsf joined #nim
12:36:23FromGitter<Bennyelg> I tried with /usr/local/Cellar/nim/0.16.0/bin/nim but wont help
12:36:47euantorI've not tried Atom, so I can't help with that I'm afraid
12:38:00FromGitter<Bennyelg> Same issue with sublime text, vscode
12:38:15*krux02 joined #nim
12:38:19flyxBennyelg: well I believe the nimExecutablePath should not point to nimble
12:39:15FromGitter<Bennyelg> As I said It was point to /usr/local/Cellar/nim/0.16.0/bin/nim
12:39:51flyxdoes vscode give any error in the console?
12:41:27FromGitter<Bennyelg> it does. it's says I dont have nim in path althought I do have it.
12:42:09flyxperhaps not the PATH vscode knows about.
12:42:45flyxI am not a homebrew user so I don't really know the details of using homebrew Nim
12:47:00FromGitter<Bennyelg> It does not really matter, I tried manually but same same. ⏎ On Atom I did achieve a lang warnings and something like import tttt while throw an error of unknown library and import strutils for example will clear the error off. thats means It recognize the path. but the go-to decleration and the auto complete is not work.
12:57:37*Lord_Nightmare joined #nim
13:02:24*cspar quit (Ping timeout: 240 seconds)
13:04:28*zachcarter joined #nim
13:13:43*george2seven joined #nim
13:14:38*Gonzih quit (Ping timeout: 252 seconds)
13:17:05Araqwell /usr/local/Cellar/nim/0.16.0/bin should be in your PATH, the dir, not the binary
13:17:54demi-no it shouldn't
13:18:05demi-brew symlinks the bins into /usr/local/bin
13:19:18demi-the cellar directory is just for separating versions between installations
13:21:56FromGitter<TiberiumPY> wait
13:22:17FromGitter<TiberiumPY> @Bennyelg there's no auto complete
13:22:25FromGitter<TiberiumPY> i mean no smart autocomplete
13:22:28FromGitter<TiberiumPY> just text completion
13:22:38FromGitter<TiberiumPY> and btw, go-to declaration doesn't work for me either
13:23:38demi-also if you have `/usr/local/bin` in your normal path, then it would be there for VSCode as well
13:23:56FromGitter<TiberiumPY> yeah, I've done it just adding Nim to path
13:24:08FromGitter<TiberiumPY> (I have my nim in a custom folder because I recompile it from time to time)
13:27:42arnetheduckAraq, btw, errno is a function in glibc - ok to change to a function in posix (for all platforms)? it's a breaking change
13:29:11*Gonzih joined #nim
13:30:39Araqerrno is a #define
13:30:45krux02well I symlinked the binaries, too
13:30:55krux02works very well
13:32:36Araqarnetheduck: well we should have made a function from the beginning
13:33:13Araqbut now it's too late, this requires a -d:errnoFunc transition switch
13:33:13krux02TiberiumPY what editor do you use?
13:36:29*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
13:43:02*yglukhov quit (Remote host closed the connection)
13:44:25*yglukhov joined #nim
13:49:03FromGitter<brechtm> for item in mySeq... is it possible to make item mutable?
13:49:56arnetheduckwell, it's a sufficiently isolated case that I can hardcode it in nlvm, but semantically, it's.. a little off presenting it like that to the user
13:51:42arnetheduck"It is unspecified whether errno is a macro or an identifier declared with external linkage."
13:52:34arnetheducka proc in nim should cover all bases though
13:54:29FromGitter<brechtm> ah, I should call mpairs explicitly?
13:56:52cheatfatearnetheduck, but you need to test it on many systems... because looks like currently you are only testing it on linux, and because `errno` can have different semantics even on BSDs, and i'm not talking about solaris, haiku and others we trying to support
13:58:04arnetheduckyeah, that's the crux, I'm kind of relying on the automated tests to do that - it's not feasible to test on all platforms manually every time (in part because I don't have access to them, but also because of how long it takes)
14:00:29arnetheduckcheatfate, I started out ambitiously trying to cover all of them by reading headers and docs for them, but it's hopeless, so now I'm focusing on linux amd64 only, and hoping that a) others chip in on other platforms, and b) that as part of that process, more automated tools are developed for the task
14:01:39cheatfatearnetheduck, for some reason i dont think its hopeless and trying to test my code over 7 platforms
14:02:16*george2seven quit ()
14:03:09arnetheduckit's hopeless if you don't have convenient access to them, and it saps time from getting at least one platform right. once there's a model to follow, it's easier to do the rest.
14:04:08arnetheduckso I actually kind of like it this way - status quo for everything except one platform, then gradually the rest can change
14:04:55arnetheduckso likely I'll leave errno as is, just because I cannot do it right and maintain status quo
14:17:12*rauss joined #nim
14:20:21arnetheduckbesides, that's what the automated test suite is for, after all.. I'd love to be able to run it without creating a pull request however.. I'm guess I'd have to set something up for my own fork, but I haven't looked into how that's done
14:23:07*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
14:34:23*bjz joined #nim
14:36:44FromGitter<brechtm> Remind me again why I should prefer generic functions over methods? Which of the generic functions is being called depends on the order ion which they were defined, which is annoying.
14:40:48*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
14:41:12krux02Well I think Nim should complain whenever generic function resolution is definition order dependent
14:41:24krux02that is nothing that should happen
14:41:40krux02But I think I did not have that case yet
14:47:49FromGitter<brechtm> @krux02 Do you know whether there is a ticket for that?
14:54:15krux02brechtm: sorry I don't know
14:54:26krux02and I think the ticked system is a bit overburden
14:54:55krux02there should be a faster feedback cycle that puts the tickets into buckets
14:55:37euantorGeneric functions are statically dispatched if I remember correctly (the compiler decides which function to call at compile time), whilst methods are dynamically dispatched (the function to call is decided at run time)
14:55:56euantorThough I could be wrong regarding generic functions
14:56:12krux02euantor of course generic functions are statically dispatched
14:56:21krux02100% sure
14:56:51euantorGood, I thought so, so that's the answer to "Remind me again why I should prefer generic functions over methods?" :)
15:02:03krux02well so far I did not yet use methods at all for all my tasks
15:02:13krux02but that depends on what you do if you need them or not
15:02:32*krux02 quit (Remote host closed the connection)
15:02:38euantorI used them for a project, but I'm going to rewrite it soon to remove them
15:09:25*onionhammer quit (Ping timeout: 246 seconds)
15:12:10*onionhammer joined #nim
15:18:03FromGitter<brechtm> As I see it, the compiler takes care of calling the right methods. When using generic procs, I need to take care.
15:20:27FromGitter<brechtm> So using methods, development time is shorter and the code is safer. When using generic procs, execution is a tiny bit faster.
15:21:19FromGitter<brechtm> But that is probably only a problem for generic procs operating on object types with an inheritance hierarchy.
15:22:58SentreenIs there a way to abort compiling a certain module? Something like `when not defined(myfeature): abort`? I know I can do `when defined(...):` and leave it empty, but I'd prefer to avoid indenting my entire file if I can :)
15:24:16demi-you could do it on the includes, right?
15:25:02cheatfateSentreen, {.error.} pragma
15:26:07cheatfate{.error: "Your platform is not supported.".}
15:29:44SentreenRight, but I don't want to abort execution. I want to decide whether or not I include some features at compile time. The code should still compile when the symbol is not present
15:31:26demi-separate that code out into a separate file that doesn't get included if it isn't supported?
15:31:57SentreenYeah, that's what I'm doing now :). I was just wondering if I could specify it in the module itself
15:43:41*Trustable joined #nim
15:45:09arnetheduckis there somehow I can include a file if it exists, and another otherwise? something like when exists("a.nim"): include a else: include b
15:51:18dom96Maybe: when compiles(include a): ...
15:53:23*nsf quit (Quit: WeeChat 1.7)
15:53:39*krux02 joined #nim
15:55:01*krux02 quit (Remote host closed the connection)
15:55:11*krux02 joined #nim
15:56:14*krux02 quit (Remote host closed the connection)
15:56:25*krux02 joined #nim
15:57:08*yglukhov quit (Remote host closed the connection)
15:59:07*yglukhov joined #nim
15:59:33*krux02 quit (Remote host closed the connection)
15:59:44*krux02 joined #nim
16:02:18*yglukhov_ joined #nim
16:03:31*yglukhov quit (Ping timeout: 260 seconds)
16:07:01*yglukhov_ quit (Ping timeout: 260 seconds)
16:13:07arnetheduckgood idea, but: e.nim(1, 15) Error: expression expected, but found 'keyword include'
16:42:37*Lord_Nightmare quit (Ping timeout: 240 seconds)
16:52:45*devted joined #nim
16:54:01*arnetheduck quit (Remote host closed the connection)
16:54:30*arnetheduck joined #nim
17:02:07*yglukhov joined #nim
17:06:31*yglukhov quit (Ping timeout: 260 seconds)
17:07:34cheatfateSentreen, {.hint.}
17:07:34FromGitter<Varriount> Arnetheduck: Are you able to check for existence and copy files at compile time?
17:08:23FromGitter<Varriount> arnetheduck: Why do you need conditional imports?
17:08:49cheatfateSentreen, sorry i have misread your question
17:08:56*Lord_Nightmare joined #nim
17:08:58cheatfate{.hint.} is not an answer
17:09:04arnetheduckVarriount, I want to include a file if it exists, and fallback on a common default if it doesn't
17:09:56arnetheduckfor example, if I have some amd64-specific stuff, I'd want to simply create a nim file in a special location and have it override some other generic nim file
17:10:54FromGitter<Varriount> Why not use `when ...: include x`?
17:15:17*yglukhov joined #nim
17:16:32*krux02 quit (Remote host closed the connection)
17:16:42*krux02 joined #nim
17:17:36FromGitter<Varriount> arnetheduck: ^
17:18:21arnetheduckwell, I want when exists(file): so I can drop a file in a magic location and it "just works"
17:18:51arnetheduckwith when <explicit condition> i need to know the conditions beforehand or update them when the new file appeaers
17:19:46arnetheduckin python, I'd do this with something like try: import a except: import b
17:21:03*Trustable quit (Remote host closed the connection)
17:21:30Araqwhen fileExists(file) works at compile-time
17:25:55FromGitter<Varriount> Araq: You know, having two OS modules, with one available at compile time, is somewhat unintuitive
17:27:22*brson joined #nim
17:27:43FromGitter<Varriount> Plus, ospaths isn't even listed on the main documentation page.
17:30:38FromGitter<Varriount> Hm. But how could the compiler support an extensible compile-time ffi mechanism...
17:36:32arnetheduckposted https://github.com/nim-lang/Nim/pull/5698 based on an idea I've floated here before - instead of posix.nim which tries to follow some unknown standard, offer up a platform-specific libc layer that deals only with abi / types that does away with the lowest common denominator approach - I'd appreciate any feedback ;)
17:38:08arnetheduckI know you've wanted something more dynamic Araq, that detects this stuff live during compile, but that's a much bigger change, while this gives some incremental benefit and clears a big blocker off my nlvm list ;)
17:39:55FromGitter<Varriount> arnetheduck: What change will this require from end users? Will any changes to the standard library need to be made?
17:40:07*Lord_Nightmare quit (Ping timeout: 240 seconds)
17:40:55SentreenMore questions: I'm working with asyncdispatch and I get the following error that's a bit too tricky for me to get. lib/pure/asyncmacro.nim(31, 8) Error: 'cb' is not GC-safe as it accesses 'nameIterVar' which is a global using GC'ed memory.
17:41:04arnetheduckit's possible to include a backwards compatibility layer, but for end users, it would mean that instead of doing import poxis, they'd do import libc.sys_socket to get the socket functions for example
17:41:11SentreenIs this related at all to the issue that prevents async procs from being forward declared?
17:41:23dom96Sentreen: this is related to threads
17:41:29dom96Do you need threads in your program?
17:41:34dom96if not, don't compile with --threads:on
17:42:08SentreenI do need threads. Basically asyncnet is running in it's own thread constantly managing multiple network connections that provide data to the rest of my program through channels
17:42:15arnetheduckthis is actually mainly of use to the standard library itself, so that it has access to an accurate representation of what's available on each platform, and can offer up a more convenient, nimified api
17:42:17Sentreen*its own thread, sorry :)
17:43:25dom96Sentreen: It's possible that you're accessing a global somewhere where you shouldn't
17:43:58dom96One of your async procs perhaps?
17:44:00arnetheduckit gives separation of concerns, there's one library that does abi / importing only, but does it well, and then there are high-level libs which massage that into something nim-like
17:46:40arnetheduckthis would also mean the availability of a near 1:1 mapping between nim and c, so it's easy to reuse existing c documentation etc
17:48:11FromGitter<Varriount> arnetheduck: Signs like something that would best exist as a separate package at first
17:48:29Sentreendom96: I don't see anything; the error goes away when I remove a particular call to another async proc from a function. However, calling that async proc in another location doesn't cause any errors.
17:49:44SentreenThe arguments that I pass are a string (which I received from the network) and a freshly created socket, so I don't see any globals
17:52:21FromGitter<Varriount> Are you using openssl?
17:52:59arnetheduckVarriount, I thought of that, but the main use case for it is inside the standard library, which makes it a little.. awkward
17:53:26SentreenNo openssl, if you were talking to me
17:53:43FromGitter<Varriount> yes, I was.
17:53:59FromGitter<Varriount> Sentreen, is your code posted somewhere?
17:54:00arnetheduckwhat I'm aiming at is a standalone compiler for nim (without gcc/msvc, which ironically is most useful on windows, which I don't use any more ;))
17:54:21SentreenLet me try to create a minimal example
17:54:36arnetheduckdoing libc this way will, I think, make it much easier to reuse inside the standard library
17:55:24FromGitter<Varriount> arnetheduck: isn't it better to use system headers when possible? So it wouldn't be completely standalone?
17:55:25arnetheduckand that in turn is necessary for a standalone compiler - it's doable with the posix.nim approach as well, but imo not very scalable
17:56:07arnetheduckVarriount, then you need a c compiler present - and you can't practically write a standalone one
17:57:14demi-if you are targetting your own system generally you can use your own headers, but if you are targetting anything else or an extended SDK then you may need to target a different sysroot
17:58:42arnetheduckVarriount, and "better" is subjective.. I'd prefer to use a language where I don't have to rely on c headers, and compile all code twice (once nim, then c) - the compile time and optimization opportunities should be evident
18:00:38dom96Sentreen: thanks, a minimal example would help out a lot
18:00:58arnetheduckdemi-, that's an interesting case.. with this available, cross-compiling is a breeze
18:01:42arnetheduckanyway, I'll be back tmr, seeya
18:02:33*rosshadden joined #nim
18:02:49Sentreendom96, Varriount: https://pastebin.com/ecU6S93R
18:03:14SentreenIt doesn't do anything useful like this, but I don't think I can remove more without removing either the threading or the async logic
18:03:49*vivus joined #nim
18:06:54dom96huh, it seems to be caused by the forward declaration
18:08:57dom96This looks like a bug, not sure whether in Nim or in my async macro though.
18:10:06SentreenDang, any idea if I can work around this somehow?
18:13:16*dexterk_iMWTX joined #nim
18:13:16*dexterk quit (Disconnected by services)
18:13:17*dexterk_iMWTX is now known as dexterk
18:16:06*dom96 is trying to find a way but it's looking unlikely :\
18:18:01dom96oh wait
18:18:09dom96you can just compile with the --threadAnalysis:off option
18:18:23dom96Sentreen: Please report this as well :)
18:19:54SentreenI will, but I should probably take the time to reduce it a bit further before I do :)
18:20:12SentreenI'll try that
18:20:30*Lord_Nightmare joined #nim
18:21:54dom96I think it's small enough
18:22:05dom96It's more important that it doesn't have any dependencies
18:22:07dom96than how small it is
18:22:23SentreenAlright, I'll post an issue later
18:22:35SentreenCompiling with threadAnalysis:off works by the way, thanks!
18:22:53SentreenAny idea if I can put that in a {.push.} somehow?
18:24:45dom96put it in your .nim.cfg file or .nims file
18:26:20vivusI have this piece of code here: https://www.zerobin.net/?40af719ba8db5916#V/e5btqjk6/JgHAVBYptr82pILiOngYq3HWVtHGT+Ac=
18:26:29vivusHow do I select the row number?
18:26:30SentreenOkay, just wanted to check if I could only disable it in that particular module :).
18:26:34SentreenThanks a lot for helping me out!
18:31:17krux02Javascript is required for ZeroBin to work
18:33:59krux02whould be better if it would just work
18:34:44vivuskrux02: which paste tool can I use that doesn't need JS?
18:35:24*Arrrr quit (Quit: Leaving.)
18:35:26krux02I use ix.io
18:35:32krux02but that's a bit minimalistic
18:36:05krux02https://pastebin.com/eGyzZdHn
18:36:11vivusand not https secured either
18:37:07ldleworkTiberiumPY are you going to wrap imgui
18:38:08ldleworkzachcarter: you should split out your nuklear binding
18:38:19zachcarter?
18:38:23zachcarterfrom?
18:38:35ldleworkfrag
18:38:38zachcarterit already is
18:38:44ldleworkoh
18:38:49zachcarterhttps://github.com/zacharycarter/nuklear-nim
18:38:52krux02well sure it's not https, but on the other hand it's not really a secret or is it?
18:39:09ldleworkzachcarter: it requires opengl I guess?
18:39:24zachcarternope! you can use whatever rendering backend you want with Nuklear
18:39:32vivusI hope not
18:40:05zachcarterif you’re using sdl2 though I imagine it’d be difficult without OpenGL
18:40:11krux02ldlework: if it would require opengl, would it be a problem?
18:40:41ldleworkkrux02: yeah because my game library only uses SDL2 blitting
18:40:48ldleworkI'm not smart enough to upgrade to opengl
18:41:15zachcarterOpenGL isn’t that hard, just takes time to learn like anything else and it’s time consuming
18:41:16krux02ok, I am working on a library that should make opengl more accessable
18:41:28zachcarteryeah krux02’s lib is nice
18:41:32zachcarterno OSX though :P
18:41:46ldleworkI need more than opengl being accessible though
18:41:54krux02when you use sdl2 for a 2D game I had the experience that software rendering was at least 10 times faster than hardware rendering with opengl backend
18:42:02ldleworkwhat
18:42:03vivuskrux02: my example is only 2 lines, so I will paste it here. (line1) let fetchdb = open("localhost", user, pass, dbname) (line2) for row in fetchdb.rows(sql("select post_content from posts")):
18:42:13krux02the blitting is really badly implemented on the opengl backend
18:42:20ldleworkOh when using blitting
18:42:24ldleworkNot all 2D games use blitting
18:42:36ldleworkI'm just using because I don't have textured quads, etc
18:42:56ldleworkI'm too lazy to understand all that batching stuff
18:43:00krux02sdl2 renders blitting with textured quads
18:43:02ldleworkI really hate it, its like doing taxes.
18:43:11krux02and that's the problem one draw call per blit
18:43:11ldleworkYeah but not as efficiently as it could be
18:43:12krux02very slow
18:43:17krux02not recommended
18:43:17ldleworkyeah
18:43:20ldleworkexactly
18:43:50ldleworkMy game library will likely be very high-level and slow as balls.
18:43:52krux02but small quads that wire not textures but surfaces (all software no rotation) was fast
18:43:53*Snircle joined #nim
18:44:43krux02so if you have big sprites, do hardware, if you have small sprites, like particles, do software
18:45:10krux02s/wire/were/
18:45:12ldleworkwhere is your library?
18:45:33krux02https://github.com/krux02/opengl-sandbox
18:45:53krux02https://github.com/krux02/opengl-sandbox/blob/master/examples/retro_tiling.nim
18:47:31krux02you should know I never added "tilemap" as a feature of my library, it should just be easy to do it
18:48:12ldleworkI pm'ed you
18:48:42krux02ldlework: where? how?
18:48:54vivusokay, figured it out
18:49:08ldleworkkrux02: I mean it should popup somewhere in your client
18:49:12ldleworkkrux02: try /query ldlework
18:50:54*Arrrr joined #nim
18:50:54*Arrrr quit (Changing host)
18:50:54*Arrrr joined #nim
19:08:33*cspar joined #nim
19:23:39*nhywyll joined #nim
19:27:16*sz0 joined #nim
19:37:17*Sentreen quit (Ping timeout: 255 seconds)
19:38:39*nsf joined #nim
19:42:15*rokups quit (Quit: Connection closed for inactivity)
19:42:16*chinchilla left #nim (#nim)
19:46:46*Jesin quit (Quit: Leaving)
19:50:42*Sentreen joined #nim
20:02:41*nhywyll quit (Quit: nhywyll)
20:03:30*Arrrr quit (Quit: Leaving.)
20:07:14*zachcarter quit (Ping timeout: 260 seconds)
20:08:22*couven92 joined #nim
20:14:25*nsf quit (Quit: WeeChat 1.7)
20:22:03*pydsigner joined #nim
20:26:39*couven92 quit (Quit: Disconnecting)
20:27:00*mindB joined #nim
20:31:22*rauss quit (Quit: WeeChat 1.7)
20:37:58*Vladar quit (Quit: Leaving)
20:41:22*zachcarter joined #nim
20:47:24*bjz joined #nim
20:51:21*yglukhov quit (Remote host closed the connection)
20:52:38FromGitter<evacchi> do you think it would be possible to write something like haskell's "let" or "where" clauses ? https://wiki.haskell.org/Let_vs._Where
20:53:07FromGitter<evacchi> for now, I've come up with ⏎ ⏎ `````` [https://gitter.im/nim-lang/Nim?at=58ee93b669a692963ea4e760]
20:53:40*Jesin joined #nim
20:53:50FromGitter<evacchi> but it's pretty verbose if you have a few statements: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58ee93e1f22385553d35fdb6]
20:54:54FromGitter<evacchi> pseudo-code for possible syntax I may like: ⏎ ⏎ ```let z = y+1 where: ⏎ let y = x+1 where: ⏎ let x = 1``` [https://gitter.im/nim-lang/Nim?at=58ee94208e4b63533dc1f426]
21:02:29FromGitter<dom96> I think you would need to wrap your whole expression in a macro call
21:02:37FromGitter<dom96> That way you can rewrite the AST as you wish
21:03:29FromGitter<dom96> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58ee9624a0e4856242fb3be2]
21:03:45FromGitter<dom96> Perhaps you can come up with a better name than ``where`` for the macro.
21:07:14*gokr quit (Ping timeout: 245 seconds)
21:12:26FromGitter<Varriount> What would the macro do? The Haskell page mentions pattern matching.
21:14:04*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:14:31FromGitter<evacchi> basically, you can write an expression (statement list in my case) where some identifiers are actually bound later, rather than before
21:14:34FromGitter<evacchi> e.g.
21:16:09FromGitter<evacchi> ```let a = b + 10 ⏎ where b = 1``` [https://gitter.im/nim-lang/Nim?at=58ee991c08c00c092a755c10]
21:16:36FromGitter<evacchi> is equivalent to `let a = 1 + 10`
21:18:35*bjz joined #nim
21:18:44FromGitter<evacchi> I figured that if I just reorder the statement list from top down to bottom up I can come already pretty close to that (although it might be surprising)
21:20:44FromGitter<Varriount> @evacchi Huh. You could just have the macro reorder the statements I guess.
21:28:01*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:32:54*bjz joined #nim
21:34:26*sz0 quit (Quit: Connection closed for inactivity)
21:40:34*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:56:12*devted quit (Quit: Sleeping.)
21:57:54*vlad1777d quit (Quit: Leaving)
22:04:06*nsf joined #nim
22:12:13ldleworkscreen tearing with SDL2 vsync :( https://www.youtube.com/watch?v=elJmKJdrEbk
22:15:36FromGitter<Varriount> Isn't VSync supposed to prevent that?
22:16:37ldleworkya
22:17:17zachcarteryour display device may not support vsync or something, sdl will return codes based on what’s supported / not supported
22:17:48zachcarterSome systems allow specifying -1 for the interval, to enable late swap tearing. Late swap tearing works the same as vsync, but if you've already missed the vertical retrace for a given frame, it swaps buffers immediately, which might be less jarring for the user during occasional framerate drops. If application requests late swap tearing and the system does not support it, this function will fail and return -1. In such a case, you
22:17:48zachcartershould probably retry the call with 1 for the interval.
22:18:10zachcarternot sure if you saw that or not
22:18:35zachcarterVarriount: I’m trying to think of ideas for a game to make, I was porting all my spaceship stuff but it’s a pain in the ass to find graphics for and I’m not totally in love with the idea
22:19:00zachcarterI started on what I planned to make a very generic space shooter, and that’s going fine and all, but that’s boring
22:19:37ldleworkzachcarter: duuuuuude
22:19:44dom96zachcarter: how simple should the game be?
22:19:53ldleworklet's make cataclysm clone, based on data driven entities...
22:20:01zachcarterhahaha
22:20:16ldleworklets combine our libs and efforts
22:20:20*Nobabs27 joined #nim
22:20:40zachcarterwe’d need a pretty decent ECS for your idea first wouldn’t we?
22:20:53zachcarterdom96: I don’t know, what ideas do you have? I’m thinking something that’s finishable
22:21:18ldleworkzachcarter: Sure, I want to build one. I'm half-way there.
22:21:36dom96Maybe you could start with some of the classics? Space invaders? Tetris? Flappy Bird?
22:21:56zachcarterdom96: Yeah that’s kind of the direction I was headed with the space shooter thing
22:22:25ldleworkOne of my favorite games is to make this game where you're a blob
22:22:27FromGitter<Varriount> zachcarter: Well, I've suggested remaking Spybot and Meritous
22:22:33ldleworkand you pick up sludge
22:22:34FromGitter<Varriount> ldlework: Gish?
22:22:42ldleworknah top-down arcade
22:22:46ldleworkso like a square arena
22:22:49dom96zachcarter: graphics are always a problem, it's the reason I rarely make games.
22:22:50ldleworkits a take on snake
22:22:56dom96But for these classics finding graphics should be easier
22:23:00zachcarterdom96: truth
22:23:01ldleworkeach time you pick up a sludge you get heavier and slower
22:23:09ldleworkand a laser is spawned horizontal or vertical
22:23:15ldleworkthat bounces back and forth
22:23:22ldleworkwhen you get hit, you lose some sludge
22:23:26ldleworkbut you also move faster again
22:23:31ldleworkthe game is self-limiting
22:23:41ldleworkso its perfect arcade high-score material
22:23:50dom96ldlework: ooh, I like it.
22:23:54zachcarterVarriount: I couldn’t remember the title of either, and I couldn’t find Meritous in my history from this morning, going to look at that now - code wise
22:24:10dom96Sounds like it would hook you in since you never really lose completely.
22:24:18dom96So it's easy to keep going.
22:24:22ldleworkuntil you get hit when you're a single blob
22:24:25ldleworkthen you lose
22:24:26FromGitter<Varriount> zachcarter: Just be aware, the source code for meritous is GPL
22:24:41dom96well, perhaps you shouldn't lose :P
22:24:48ldleworkdom96: evevntually the screen is filled with lazers
22:24:58ldleworktaking up each horizontal and vertical column/row
22:25:07ldleworkdeath is what creates the highscore
22:25:16ldleworkwhat's nice is that the game is forgiving
22:25:28ldleworkand you can manage your own mobility by taking hits on purpose
22:25:28FromGitter<Varriount> zachcarter: So if you decide to use the source code while translating, you hit that legal grey area.
22:25:36zachcarterright
22:25:46zachcarterhrm
22:25:53ldleworkThis game was a pyweek entry I made :)
22:26:03dom96hrm, suddenly I'm reminded of this mini game in SA:MP I loved. But that would require 3D :)
22:26:03ldleworkMy teammate even made awesome shader for the blob player and the lasers
22:26:09dom96I've always wanted to re-create it
22:26:14FromGitter<Varriount> zachcarter: You can still avoid that by just playing the game and observing it. Or having someone describe the code in general terms.
22:26:16*Nobabs27 quit (Quit: Leaving)
22:26:17dom96I should add it to my ideas list
22:26:30ldleworkthe high-score list https://pyweek.org/media/dl/10/__pyweeklings__/Screenshot-Pyweek%2010%20-%20Wabble%20by%20team%20__pyweeklings__.png
22:26:37FromGitter<Varriount> zachcarter: I believe the latter is what the MinGW project did for headers.
22:26:52zachcarterah okay
22:27:20ldleworkyay I still have the code, https://github.com/dustinlacewell/pw10-wabble
22:27:28*ldlework tries to get it to work
22:29:07ldlework:(
22:29:11ldleworkIt runs very very very slow
22:29:44ldleworkoh no it works
22:29:47ldleworknice
22:29:49ldlework:D
22:29:53ldleworkits so tiny on my hi-dpi lmao
22:30:05ldleworkaww it crashed
22:30:21FromGitter<Varriount> zachcarter: https://en.wikipedia.org/wiki/Clean_room_design
22:31:31pydsignerI never did win Meritous
22:31:55pydsignerI fought that final boss so many times but never pulled it off
22:35:13FromGitter<Varriount> pydsigner: It helps if you get all the upgrades.
22:37:06ldleworkI recorded a video of Wobble
22:37:11ldleworkit still works :D
22:37:17pydsignerI think I did, but maybe not. I think I had cleared the entire rest of the map
22:37:53pydsignerIt's been few years
22:40:14ldleworkhttps://www.youtube.com/watch?v=OtjnqQrx5hU
22:40:18ldleworkdom96: ^
22:41:00krux02What do you think for 'nim compile' to only allow imports of packages that are actually defined as dependencies in project.nimble if that file exists?
22:41:17dom96ldlework: cool, port it to Nim!
22:41:30dom96Those level backgrounds are messing with my mind
22:42:05dom96I love them though, awesome how they transition
22:42:14ldleworkIt'll be hard without Pyglet/High-level OpenGL
22:42:45ldleworkdom96: I made it about 40 here :)
22:43:18dom96krux02: 'nimble c' does this already
22:43:55krux02interesting
22:44:04krux02I was always using just nim
22:45:02*nightmared quit (Ping timeout: 260 seconds)
22:46:25*nightmared joined #nim
22:46:39krux02ldlework: the monster picture in the end at the score reminds me of this: http://autoimg.clipfish.de/autoimg/4b89e3f6c0fa826a45e419ba0ddd3b6c/0x0/jammerlappen-wird-von-klofrau-glkler-abgefertigt-die-puppenstars.jpg
22:48:15ldleworkthat's a 1x1 pixel
22:48:19ldleworklol
22:49:19ldleworkOnce nim has a pyglet like library we should have a nim game competition
22:49:27ldleworkor even before then
22:50:36*Nobabs27 joined #nim
22:56:59FromGitter<Varriount> I always have mixed feelings about Nimble. On the one hand, it does a great job as a package manager. On the other, i dislike having to use it as a build too.
22:57:03FromGitter<Varriount> *tool
22:59:19pydsignerIt's kinda like pip in Python I guess
23:00:41dom96Suggestions on how to improve it more than welcome :)
23:01:50FromGitter<Varriount> pydsigner: Pip calls setup.py, but doesn't actually mandate any particular build format.
23:01:58FromGitter<Varriount> Other than that script.
23:02:26FromGitter<Varriount> And you can call setup.py on your own, without pip
23:04:58*[ui] joined #nim
23:06:10dom96what do you mean by "build format"/
23:06:11dom96*?
23:07:38FromGitter<Varriount> The nimble files
23:08:05FromGitter<Varriount> Basically, I like being able to build my packages without relying on anything but the compiler.
23:08:52dom96you can do that
23:09:06dom96Nimble is only necessary for installing the dependencies
23:10:03pydsignerWhich you need pip for in Python too
23:10:45pydsignerI am curious as to whether or not anyone has done virtualenvs for Nim yet
23:21:44*nsf quit (Quit: WeeChat 1.7)
23:34:08*enthus1a1t quit (Ping timeout: 240 seconds)
23:46:40*enthus1ast joined #nim
23:51:51*dexterk_kRqBe joined #nim
23:51:51*dexterk quit (Disconnected by services)
23:51:52*dexterk_kRqBe is now known as dexterk
23:52:50*def-pri-pub joined #nim
23:54:43zachcarterIdlework: I want to do game jams once frag is a little further along