<< 19-02-2018 >>

00:45:56*MJCaley quit (Quit: MJCaley)
00:58:10*MJCaley joined #nim
01:58:06*geocar quit (Quit: Connection closed for inactivity)
02:10:41*arnetheduck quit (Ping timeout: 248 seconds)
02:17:45*gokr quit (Ping timeout: 264 seconds)
02:27:48*arnetheduck joined #nim
02:35:52*j_rod_s joined #nim
02:42:10*chemist69 quit (Ping timeout: 240 seconds)
02:45:34*MJCaley quit (Quit: MJCaley)
02:46:57*j_rod_s quit (Ping timeout: 248 seconds)
02:49:09*vlad1777d quit (Ping timeout: 260 seconds)
02:56:10*chemist69 joined #nim
03:26:46*tefter joined #nim
03:30:17*endragor joined #nim
05:03:55*dddddd quit (Remote host closed the connection)
05:10:33*j_rod_s joined #nim
05:15:27*j_rod_s quit (Ping timeout: 240 seconds)
05:18:23*r3d9u11 joined #nim
05:26:35*xkapastel quit (Quit: Connection closed for inactivity)
05:37:33*gangstacat quit (Quit: Ĝis!)
05:46:45*j_rod_s joined #nim
06:07:52*nsf joined #nim
06:09:06*r3d9u11 quit (Remote host closed the connection)
06:29:25*Elronnd quit (Quit: stack overflow: feedback loop tried to call itself SHIT too many times)
06:29:59*Elronnd joined #nim
06:30:47*Elronnd is now known as earenndil
06:30:50*gangstacat joined #nim
06:48:29*endragor quit (Remote host closed the connection)
06:49:05*endragor joined #nim
06:50:33*r3d9u11 joined #nim
06:53:27*endragor quit (Ping timeout: 240 seconds)
07:17:39*endragor joined #nim
07:20:27*solitudesf joined #nim
07:29:14*SenasOzys quit (Ping timeout: 276 seconds)
07:30:32FromGitter<honewatson> @Bennyelg you might need to add id="ROOT" to your div tag in the html
07:30:49*miran joined #nim
07:36:06*rockcavera joined #nim
07:52:46*rokups joined #nim
08:08:46*gokr joined #nim
08:20:38*PMunch joined #nim
08:35:42FromGitter<Bennyelg> @honewatson I just figure this out after long research but why? too bad the documentation is so bad or even exists. because karax can be very very good framework
08:41:11*arnetheduck quit (Ping timeout: 256 seconds)
08:41:40PMunchBennyelg, yeah documentation for Karax is pretty lacking..
08:41:42*arnetheduck joined #nim
08:42:04PMunchBut that's the case for many open-source projects
08:54:58*floppydh joined #nim
09:07:37*yglukhov joined #nim
09:09:19*Senketsu quit (Remote host closed the connection)
09:14:43FromGitter<mratsim> Karax is only 3 months old I think.
09:16:37PMunchStarted about end of March 2017
09:16:53PMunchSo its soon a year old
09:18:18*Yardanico_ joined #nim
09:21:45*Yardanico_ quit (Read error: Connection reset by peer)
09:21:57FromGitter<Bennyelg> everyday its progress or develop more the harder it comes to document it.
09:25:52PMunchTrue true
09:26:48PMunchI was actually considering doing a little round of writing documentation for my own projects
09:27:46PMunchI tend to just create lots of projects and leaving them without much in terms of documentation :P
09:39:33*r3d9u11 quit (Read error: Connection reset by peer)
09:42:04*Arrrr joined #nim
09:42:04*Arrrr quit (Changing host)
09:42:04*Arrrr joined #nim
09:47:11ArrrrWhat is the paintless way to define an array of procs? Says it got '{.gcsafe, locks: 0.}' but expected '{.noSideEffect, gcsafe, locks: <unknown>.}'
09:47:34ArrrrChanging the order only changes the message. Seems like they don't get along.
09:48:46*yglukhov_ joined #nim
09:49:09*PMunch quit (Ping timeout: 260 seconds)
09:51:05*yglukhov quit (Ping timeout: 256 seconds)
09:54:14*r3d9u11 joined #nim
10:01:29*SenasOzys joined #nim
10:01:38*sendell joined #nim
10:08:50*natrys joined #nim
10:43:59*yglukhov_ quit (Read error: Connection reset by peer)
10:44:15GitDisc<Lite5h4dow> how do i add Nim to the PowerShell path list?
10:44:36*yglukhov joined #nim
10:47:04*PMunch joined #nim
10:47:32*vlad1777d joined #nim
10:50:39FromGitter<mratsim> type Foo[N: static[int]] = array[N, proc {.noSideEffect.}] ?
10:51:27FromGitter<mratsim> or alias your proc type `type MyProc = proc {.noSideEffect, nimcall.}`
10:53:32GitDisc<Lite5h4dow> tyty
10:54:05ArrrrThe problem is that some of them actually have side effects, but not every proc
10:55:31ArrrrI fear i'll have to use casting
10:59:26Araqbennyelg: I wrote a blog post about Karax and there are plenty of examples
10:59:58FromGitter<Bennyelg> @Araq , I read you blog post, check for example the 1st example of hello world
11:00:31AraqI'm always willing to improve docs
11:00:36FromGitter<Bennyelg> except the nim file, nothing about how to run it after compiling it with the nim compiler, what to write in the html file
11:01:19Araqbut if you refuse to read the examples who tells me you won't refuse to read the docs ;-)
11:01:44Araqhuh? doesn't it tell you to use 'karun' ?
11:03:10Araq" Karax provides a tiny build tool called karun that generates the HTML boilerplate code that embeds and invokes the generated JavaScript code:
11:03:10Araqnim c tools/karun
11:03:10Araqtools/karun -r helloworld.nim"
11:03:20Araqfrom https://nim-lang.org/araq/karax.html
11:05:05AraqArrrr, can't you change the type to not say 'noSideEffect' instead?
11:05:20Araqif your procs have side effects, why demand that they don't?
11:07:14ArrrrWhat i did was to define a type as mratsim said and then define the array as [MyType procA, procB, procC]. I thought i'd be required to cast each proc, but wasn't necessary
11:16:44*SenasOzys quit (Ping timeout: 276 seconds)
11:17:27GitDisc<Lite5h4dow> i keep getting this error in cmd and ps `invocation of external linker program failed. Access is denied.
11:17:28GitDisc<Lite5h4dow> 5`
11:17:37GitDisc<Lite5h4dow> idk why
11:17:52GitDisc<Lite5h4dow> i googled it and the git issue is supposedly patched
11:20:47GitDisc<Lite5h4dow> but im still getting this error
11:32:13*SenasOzys joined #nim
11:35:18Arrrrwhat aree you using to compile?
11:35:49FromGitter<sclee15> Nim js backend supports so called tree shaking. It is amazing. Metaprogramming in js world alone has a merits just saying..
11:47:59PMunchLite5h4dow, does it complain about a specific file? Was a guy here using Solus yesterday who had similar issues with /usr/local/include
11:48:17*xkapastel joined #nim
11:51:35*Arrrr quit (Ping timeout: 240 seconds)
12:10:39*vlad1777d quit (Ping timeout: 248 seconds)
12:10:49*zolk3ri joined #nim
12:15:24Araqsclee15: tree shaking?
12:15:28Araqwhat's that? :-)
12:15:52Araqoh, dead-code elimination
12:21:42*beatmox quit (Remote host closed the connection)
12:21:54*Senketsu joined #nim
12:22:13*beatmox joined #nim
12:23:59*yglukhov quit (Read error: Connection reset by peer)
12:24:33*yglukhov joined #nim
12:27:07*natrys quit (Ping timeout: 260 seconds)
12:38:06*Arrrr joined #nim
12:38:07*Arrrr quit (Changing host)
12:38:07*Arrrr joined #nim
12:44:41GitDisc<Lite5h4dow> its not mentioning a specific file
12:44:52GitDisc<Lite5h4dow> sorry ive been looking for a solution and i cant find one
12:45:17GitDisc<Lite5h4dow> ill post everything it posts
12:45:21*dddddd joined #nim
12:45:43GitDisc<Lite5h4dow> ```
12:45:43GitDisc<Lite5h4dow> Nim Projects\UI Test> nim c -r .\uitest.nim
12:45:43GitDisc<Lite5h4dow> Hint: used config file 'C:\Program Files\nim-0.17.2\config\nim.cfg' [Conf]
12:45:43GitDisc<Lite5h4dow> Hint: system [Processing]
12:45:43GitDisc<Lite5h4dow> Hint: uitest [Processing]
12:45:43GitDisc<Lite5h4dow> Hint: ui [Processing]
12:45:44GitDisc<Lite5h4dow> Hint: rawui [Processing]
12:45:45GitDisc<Lite5h4dow> Hint: [Link]
12:45:47GitDisc<Lite5h4dow> Error: invocation of external linker program failed. Access is denied.
12:45:47GitDisc<Lite5h4dow> 5```
12:48:50dom96Maybe your running uitest.exe and so it can't be overwritten?
12:48:53dom96*you're
12:49:05dom96try renaming uitest.nim to foobar.nim and compile that
13:04:27livcdIs there an example / logging lib somewhere ?
13:10:12*natrys joined #nim
13:13:41dom96logging module
13:13:45dom96in stdlib
13:17:34*yglukhov quit (Remote host closed the connection)
13:26:07*r3d9u11 quit (Remote host closed the connection)
13:27:17*r3d9u11 joined #nim
13:31:14*Arrrr quit (Read error: Connection reset by peer)
13:33:05*gokr quit (Ping timeout: 240 seconds)
13:53:13FromGitter<sclee15> Can nim have a nullable int?
13:54:26dom96You can make a 'ref int' but you should probably use the options module instead
13:57:32*xet7 quit (Ping timeout: 260 seconds)
14:04:30*natrys quit (Quit: natrys)
14:05:06FromGitter<mratsim> By the way, I suppose “options” will go be removed once “opt” is out?
14:06:07*Snircle joined #nim
14:09:10*xet7 joined #nim
14:18:53*xet7 quit (Quit: Leaving)
14:24:33Araqmratsim: 'opt' is misguided
14:24:55Araqand unlikely to be added as a builtin
14:25:09FromGitter<mratsim> Ah, so I should just forget about it and use Options then
14:25:21AraqI think so, yes.
14:25:25FromGitter<mratsim> what was wrong with them?
14:25:49Araqthough the Options implementation might need to be changed to support type recursions
14:26:31FromGitter<mratsim> like Option[Option[T]] ?
14:26:56AraqNo, like ListElement = object next: Option[ListElement]
14:27:12Araq(note the absense of a 'ref' here)
14:27:46FromGitter<mratsim> I see
14:28:14Araqopt[T] was designed before I figured out move semantics
14:33:51FromGitter<alehander42> so would Option[T] be optimized more in the future?
14:35:42dom96Glad to hear opt[T] isn't a thing anymore
14:38:26FromGitter<alehander42> honestly something else that I like is Opt[T] implementation based on better not nil checking ⏎ e.g. if you have Opt[T], that's represented as a T value or nil, and one can use it based on flow-based typecheck ⏎ (e.g. in branches with not a.isNil or with if a.some or ofc with explicit unwrap)
14:38:49FromGitter<alehander42> something like field? types in typescript
14:40:18FromGitter<alehander42> this has its own limitations, but it seems most lightweight in resources and usage (no if value.isSome: let someValue = value.get everywhere)
14:41:55FromGitter<alehander42> this seems simpler to me than e.g.the current flow-based variant checks (nim knows `kind == ..` means stuff and it can even reason about `a.kind != b.kind`)
14:42:29Araqyeah, it's simpler
14:42:32FromGitter<alehander42> so it doesn't seem too hard to implement (but probably I am missing something)
14:42:45Araqbut I figured Nim is easier to fix than to change
14:43:12Araqand the flow-based checks are awesome for other things anyway
14:43:19Araqlike array bounds checking in the future
14:43:55FromGitter<alehander42> no, I mean those flow-based checks are great, I just think it would be easy to use something similar for option checking (and automatically unwrapping the value in the branch)
14:44:34Araqsyntax is a problem too :-)
14:44:54FromGitter<alehander42> hm, why
14:45:07Araqif (x != nil) as x: echo x
14:45:33Araqif (let x = Some(o)): echo x ?
14:45:52AraqNim has no notion of a value that also acts as a boolean flag
14:46:28Araqa solution like in Swift or Rust doesn't feel natural for Nim
14:46:32FromGitter<alehander42> I still think one can go with implicit unwrap: ⏎ ⏎ ```if x != nil and b(): ⏎ x.method() ⏎ else: ⏎ stuff``` [https://gitter.im/nim-lang/Nim?at=5a8ae3470202dc012e570b45]
14:47:13FromGitter<alehander42> if one wants to use a different name, one can always ⏎ ⏎ ```if x != nil: ⏎ let s = x.get ⏎ ``` [https://gitter.im/nim-lang/Nim?at=5a8ae37135dd17022ec607c6]
14:47:24Araqhow would this implicit unwrap work?
14:47:50*solitudesf quit (Ping timeout: 255 seconds)
14:48:10FromGitter<alehander42> well, if the flow-based check shows that x can't be nil in a branch, ⏎ x's type is changed from `Opt[T]` to `T` only in that branch
14:48:24FromGitter<alehander42> but I don't know how easy that would be for the compiler
14:48:27FromGitter<andreaferretti> ugh
14:48:31Araqyes. do you argue for a builtin Opt[T] then?
14:48:41FromGitter<andreaferretti> I don't know how nice it would be for client code
14:48:42FromGitter<alehander42> yes
14:48:49*gokr joined #nim
14:48:55FromGitter<andreaferretti> type changes in a branch without any evidence
14:48:55FromGitter<Bennyelg> I agree, but I would considering stop develop and start writing
14:49:38FromGitter<alehander42> I would compare it to the variants again, it's more "a refinement"
14:49:41*xet7 joined #nim
14:49:50*solitudesf joined #nim
14:50:38FromGitter<alehander42> in current Nim, a variant in a branch has "for any practical consideration" a little bit different type than before the branch: you can do some operations on it, that you can't otherwise etc
14:52:14FromGitter<mratsim> I think I found it. Somehow one of the OpenCL type is `type Pcommand_queue* = ptr T_cl_command_queue` but the library I wrapped wants a `ptr ptr T_cl_command_queue` oh boy
14:52:15FromGitter<mratsim> @miran, I just came upon this Neural net in Nim repo which introduces a nice DSL: https://github.com/t8m8/Neural-Network-in-Nim/blob/master/examples/mnist.nim
15:04:53*kunev quit (Ping timeout: 276 seconds)
15:05:14*kunev joined #nim
15:09:05FromGitter<mratsim> As long as we don’t get into this kind of trap I’m fine with explicit unwrap: https://users.rust-lang.org/t/fluent-approach-and-unwrap/12078
15:09:38FromGitter<mratsim> Haskell doesn’t have this issue but it’s because they have custom lifting operators like `>>=` or `<*>`
15:09:46FromGitter<zetashift> that's a lot of () ()
15:10:02FromGitter<andreaferretti> it is not a refinement
15:10:11FromGitter<andreaferretti> a T in not an Option[T]
15:10:18FromGitter<andreaferretti> is not
15:10:24FromGitter<andreaferretti> that's the point
15:10:29FromGitter<zetashift> Doesn't Rust '?' now to handle quick&dirty unwrapping?
15:10:45FromGitter<andreaferretti> it's not like infering a range instead of int inside a branch
15:10:49FromGitter<andreaferretti> that's refinement
15:11:05FromGitter<andreaferretti> Option[T] is just a different type from T
15:11:54FromGitter<mratsim> @zetashift I don’t think `?` when I tried Rust 2 years ago, it may have been added to combat just that actually
15:13:59FromGitter<alehander42> maybe describing my idea of Opt[T] as something like T | Nil illustrates is better (then, in the branch, the new type T can still be used everywhere where Opt[T] can be used, so implicitly unwrapping it makes sense)
15:14:45FromGitter<mratsim> I think Rust tried to mix Option/functional/monadic construct with a procedural language without introducing what was necessary to extract or combine types/proc easily
15:14:53FromGitter<alehander42> explicit unwrapping is probably better, but it needs really good syntax as mamy's example shows
15:15:06FromGitter<mratsim> They went half-way to Haskell and got stuck in an unergonomic place
15:16:30FromGitter<alehander42> also, explicit unwrapping often requires me to give a different name to the same variable ⏎ (or to do ⏎ ⏎ ```if optA.isSome:``` [https://gitter.im/nim-lang/Nim?at=5a8aea4ec3c5f8b90dd88d0a]
15:16:43FromGitter<alehander42> var a = optA.get ⏎ ⏎ `````` [https://gitter.im/nim-lang/Nim?at=5a8aea5b35dd17022ec63bae]
15:18:49FromGitter<mratsim> On another hand, I would also like for Option to not introduce another indirection when wrapping a ref object (meaning a ptr (nil | ref object) and then dereferencing again to access the actual object)
15:18:54FromGitter<alehander42> I like Araq's ⏎ `if x.isSome as x and stuff:`, but maybe that would be too big of a change for the language
15:19:21FromGitter<alehander42> yeah, having a low/no overhead option is very important
15:19:26FromGitter<mratsim> it’s good
15:19:56FromGitter<mratsim> Nim already allows shadowing in proc
15:20:15*birdspider joined #nim
15:22:33*miran_ joined #nim
15:26:40*zolk3ri quit (Remote host closed the connection)
15:27:14*radagast_04 joined #nim
15:28:01Araqmratsim: there is a PR for that
15:28:23Araqwhich we should probably embrace for the next release. it optimizes the indirection away for refs
15:29:16*endragor quit (Remote host closed the connection)
15:29:38miran_mratsim: thanks for the link (posted two hours ago, i've been AFK)
15:29:47*endragor joined #nim
15:30:01radagast_04Hi, question about nimble again, I have a library project and I was trying to use nimble init to create mylib.nimble. Since mylib is a multimodule project, it has a directory called mylib/ . However nimble init always creates src/ and sets srcDir to "src"... Should I change it to srcDir = "mylib"?
15:31:11FromGitter<mratsim> you can just remove the srcDir altogether
15:31:48FromGitter<mratsim> srcDir is used only if your project source dir does not have your project name (i.e. is named src)
15:32:39miran_btw, was there any more discussion since yesterday about enabling chaining procedures by returning their 'var param'?
15:32:41livcdahh i wish i could use nim for this small project but I need to be able to authenticate against Active Directory
15:34:47*endragor quit (Ping timeout: 276 seconds)
15:36:37Araqmiran_, chaining calls with the help of unclear ownership ala C++ is not idiomatic Nim
15:37:13miran_i don't know how it is done in c++ :D
15:37:33Araqeverything returns a &T (var T in Nim)
15:37:33miran_maybe some pragma that would enable returning the first parameter?
15:37:46FromGitter<dom96> @mratsim Rust has pattern matching though which alleviates unwrapping problems, no?
15:38:17Araqmiran_, why return what is already known?
15:38:34Araqif you seek syntactic convenience, use a template or a macro
15:38:50AraqwithArg x:
15:38:52Araq foo()
15:38:54Araq bar()
15:38:57Araq baz()
15:38:58FromGitter<mratsim> @dom96 yeah Rust pattern matching is better than Nim case of ;)
15:38:59miran_to be able to do: a.p().q().r(), where: proc p(a: var something)
15:39:13FromGitter<dom96> @radagast_04: put 'myLib' into the 'src' dir?
15:39:57radagast_04Thanks guys.
15:40:05FromGitter<alehander42> hm, I always thought acceptable pattern matching should be achievable with macros (something like patty)
15:40:44Araqmiran_, exactly, so you can either write one macro to deal with that
15:41:00Araqor patch every proc you write to support "chaining" (which bites with type inference btw)
15:41:23AraqI take the macro, thanks. ;-)
15:41:53miran_Araq: well, i guess i should then start looking at macros - both macros and templates are something i avoided, as they seemed too complex for me to grasp
15:42:56FromGitter<mratsim> “I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain.”
15:46:19FromGitter<dom96> patty is beautiful
15:47:09FromGitter<dom96> I think that we need it (or something like it) in the stdlib, otherwise `Option[T]` support in Nim feels half baked
15:47:31FromGitter<dom96> Although to be honest, the fact that most of the stdlib doesn't use `Option[T]` makes it seem alien.
15:47:39FromGitter<zetashift> patty only works on vertain types right?
15:48:05FromGitter<zetashift> I think I recently found out Nim had Option[T], most examples use try/raise/exceptions
15:48:13FromGitter<alehander42> also patty's variant dsl-s are great
15:54:06AraqI want an Option type that maps None to an invalid enum value or low(int)
15:54:26FromGitter<honewatson> I thoughf tu
15:55:26Araqbut meh, mostly I don't want an Option type
15:56:01FromGitter<honewatson> I think the Options implementation was fine as is
15:56:57AraqI love to fold cases, if stuff().len > 0: echo "i have data" is much better than any unwrap()s, implicit conversions etc
15:58:37FromGitter<zetashift> That's how Go does it as well iirc
16:03:24FromGitter<alehander42> well stuff is often very type unsafe without some kind of Option type
16:03:36FromGitter<alehander42> especially with `not nil` not being finished afaik
16:04:40*r3d9u11 quit (Remote host closed the connection)
16:04:41Araq'not nil' got significantly better
16:06:03Araq[] for array access does not return Option[T] in any language I know about
16:06:15Araqthat's how good it works :P
16:07:12Araqand nobody argues for it either
16:07:37*BitPuffin joined #nim
16:10:22FromGitter<alehander42> :D the `[]` is cool,
16:12:03FromGitter<alehander42> I'll try to play more with not nil
16:12:23FromGitter<alehander42> currently it seems almost perfect for some of my usecases, but still it falls short sometimes
16:12:23FromGitter<alehander42> e.g.
16:12:49FromGitter<alehander42> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a8af7816f8b4b9946946fda]
16:13:03*natrys joined #nim
16:13:11FromGitter<alehander42> if `a` gets a not nil arg, it can guard that perfectly in branches like this
16:13:43FromGitter<alehander42> but I can still do `echo a.b` (where b is an in field of A) in else and it will compile happily
16:15:17FromGitter<alehander42> (which maybe doesn't have a lot to do with not nil, but still I don't know how to deal with: I mean, it seems that Nim knows A in this case is ProvedNil, but still it doesn't stop me from doing weird stuff with it)
16:15:56AraqI think 'not nil' isn't concerned about derefs
16:16:05dom96Discussion on HN about overflow checks being disabled in release mode, there is a person arguing that it should be enabled always: https://news.ycombinator.com/item?id=16413197
16:16:20Araqwe should definitely fix that, alehander42
16:16:25FromGitter<mratsim> Go error checking … I certainly don’t want that
16:16:51*athenot joined #nim
16:17:08dom96The ideal use for Option[T] is when the 'None' case is relatively common
16:17:30dom96This is why `[]` returning Option[T] doesn't make sense :)
16:17:53FromGitter<mratsim> @dom96 —overflowChecks:on ? and don’t pollute my codebase :P
16:18:22GitDisc<Lite5h4dow> hi, i havent actually managed to successfully compile any code on nim yet
16:18:36GitDisc<Lite5h4dow> hi, i havent actually managed to successfully compile any code on this machine yet
16:18:46GitDisc<Lite5h4dow> i only installed it this morning
16:19:04dom96mratsim: Why not the other way around? if you want extra speed then disable it explicitly :P
16:19:08*endragor joined #nim
16:19:27FromGitter<mratsim> isn’t that what “release” is supposed to do?
16:19:48FromGitter<mratsim> @Lite5h4dow do you need help?
16:19:58FromGitter<alehander42> @Araq ok, should I open an issue
16:20:10Araqalehander42: Yes, please
16:20:14dom96Lite5h4dow: did you see my advice? https://irclogs.nim-lang.org/19-02-2018.html#12:48:50
16:20:49GitDisc<Lite5h4dow> yeah
16:20:53GitDisc<Lite5h4dow> it still wont compile
16:20:58Araqdom96, the "Mill" architecture will save us. it can do saturated arithmetic, my favourite fix for that
16:21:25dom96mratsim: true, I think we also have "safe" or something too
16:21:39GitDisc<Lite5h4dow> ```Hint: rawui [Processing]
16:21:39GitDisc<Lite5h4dow> CC: foobar
16:21:39GitDisc<Lite5h4dow> Hint: [Link]
16:21:40GitDisc<Lite5h4dow> Error: invocation of external linker program failed. Access is denied.
16:21:40GitDisc<Lite5h4dow> 5```
16:22:00dom96But the argument is about not "release"'ing programs which might have serious bugs due to overflow
16:22:32dom96Lite5h4dow: try with --verbosity:3
16:22:43dom96and please don't paste all the output
16:22:46dom96use a pastebin
16:23:27*PMunch quit (Quit: Leaving)
16:23:35*endragor quit (Ping timeout: 256 seconds)
16:23:53GitDisc<Lite5h4dow> ok
16:24:05FromGitter<mratsim> @Araq, I’ve been looking into big ints implementation used for crypto, they rely on overflow to do modulo 2^256 operations on uint256 … and implementing uint128/256, etc addition uses overflow + carry flag
16:24:20GitDisc<Lite5h4dow> https://pastebin.com/TPe2K2xq
16:27:36*radagast_04 quit (Remote host closed the connection)
16:29:18*endragor joined #nim
16:29:41dom96Lite5h4dow: No idea how to help :/
16:29:47dom96How did you install nim? What version is it?
16:29:51GitDisc<Lite5h4dow> rest in peperonies
16:30:04dom96lol?
16:30:14GitDisc<Lite5h4dow> 0.17.2
16:30:40GitDisc<Lite5h4dow> i extracted it, into program files
16:30:47GitDisc<Lite5h4dow> ran finish as administrator
16:30:52GitDisc<Lite5h4dow> added the ccompiler
16:30:56GitDisc<Lite5h4dow> added the c compiler
16:31:08GitDisc<Lite5h4dow> added the path to the path list in system settings
16:31:14GitDisc<Lite5h4dow> that was it
16:31:22GitDisc<Lite5h4dow> well after adding the dependancies
16:32:14AraqLite5h4dow: and the libui example is also in a dir that requires admin rights?
16:32:27GitDisc<Lite5h4dow> yup
16:32:33GitDisc<Lite5h4dow> but im rinning the terminal as admin
16:32:40GitDisc<Lite5h4dow> so it has the prrivaleges
16:32:43GitDisc<Lite5h4dow> or it should
16:33:09Araqthat's stupid, use a sane directory and not admin rights
16:33:40GitDisc<Lite5h4dow> oh well im sorry, im not a fucking genious am i
16:33:52Araqno, you are a troll
16:33:54GitDisc<Lite5h4dow> every time you chip in araq you make everyone else feel like an idion
16:33:56GitDisc<Lite5h4dow> every time you chip in araq you make everyone else feel like an idiot
16:34:01GitDisc<Lite5h4dow> no im not
16:34:07GitDisc<Lite5h4dow> im genuinly new to this shit
16:34:42GitDisc<Lite5h4dow> if you have a problem with me just say it
16:34:49AraqI did.
16:34:52Araqnow go away.
16:35:00GitDisc<Lite5h4dow> dont belittle people looking for advice
16:35:04*Trustable joined #nim
16:36:03GitDisc<Lite5h4dow> you have problems man
16:36:22Araqmratsim: modulo arithmetic is useful yes, for plenty of things but not as a default
16:37:02dom96Please don't leave Lite5h4dow
16:37:17GitDisc<Lite5h4dow> why shouldnt i
16:37:43GitDisc<Lite5h4dow> every time i have an issue thatt i cant get my head around this idiot can do nothing but make me feel like an idiot
16:37:56GitDisc<Lite5h4dow> i like the language but damn
16:38:03GitDisc<Lite5h4dow> the people sometimes
16:38:06GitDisc<Lite5h4dow> so condecending
16:38:42*miran_ quit (Remote host closed the connection)
16:39:00dom96Yep, far too condescending.
16:39:00FromGitter<mratsim> Can you use choosenim and install in your user folder? https://github.com/dom96/choosenim
16:39:32*miran_ joined #nim
16:40:21dom96This isn't how we should be helping beginners.
16:41:19dom96But escalating things doesn't help either :)
16:41:34AraqI'm not gonna apologize and a troll is one that does not leave when asked to.
16:41:57GitDisc<Lite5h4dow> oh ffs
16:42:02*gangstacat quit (Quit: Ĝis!)
16:42:03GitDisc<Lite5h4dow> no one was talking to you shitstain
16:42:19FromGitter<mratsim> @zacharycarter probably interesting for you: https://www.haroldserrano.com/blog/books-i-used-to-develop-a-game-engine
16:43:35*elronnd joined #nim
16:43:44dom96Lite5h4dow: can you compile a simple hello world program?
16:43:49*elronnd is now known as Elronnd
16:43:53GitDisc<Lite5h4dow> hold on still removing th paths
16:44:28dom96Although I think you should try reinstalling as a non-admin
16:44:34GitDisc<Lite5h4dow> ah
16:44:36GitDisc<Lite5h4dow> ok
16:45:11miran_dom96: can nim be installed (via choosenim) on windows machine where you don't have admin privileges?
16:45:20dom96sure
16:45:30dom96although there is currently a bug on Windows
16:45:44dom96that's unrelated
16:45:49miran_nice to know, if i decide to install it at my work :)
16:45:56GitDisc<Lite5h4dow> ok ty
16:46:24dom96Lite5h4dow: is it working now?
16:46:53GitDisc<Lite5h4dow> no i cant remove nim from program files xD
16:47:00GitDisc<Lite5h4dow> it keeps saying its in use
16:47:16dom96might need to close your cmd prompt
16:47:22GitDisc<Lite5h4dow> i have
16:47:27GitDisc<Lite5h4dow> i dont have a prompt open
16:47:34GitDisc<Lite5h4dow> im gonna reboot then delete
16:47:39dom96yeah, best way
16:47:51dom96there are a couple of freeware programs out there that show you the process that prevents deletion
16:48:04GitDisc<Lite5h4dow> i didnt know that
16:48:12dom96Can't remember the names of any though
16:55:27*r3d9u11 joined #nim
16:56:39GitDisc<Lite5h4dow> ok its compilin
16:56:49GitDisc<Lite5h4dow> just have a few errors in my code that i need to fix
16:56:54GitDisc<Lite5h4dow> finally
16:57:01GitDisc<Lite5h4dow> took half the day but i can compile agian
16:57:02FromGitter<mratsim> congrats
16:57:14GitDisc<Lite5h4dow> thanks for your help guys
16:57:36dom96yay
16:58:07*gokr quit (Ping timeout: 248 seconds)
16:58:41GitDisc<Lite5h4dow> sorry for blowing up at araq, he got on my nerves
17:18:27*yglukhov joined #nim
17:18:39*yglukhov quit (Remote host closed the connection)
17:18:53*yglukhov joined #nim
17:19:52*yglukhov quit (Remote host closed the connection)
17:21:00*yglukhov joined #nim
17:23:41FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/qemA/2018-02-19_18-23-14.png)
17:24:04*Sembei joined #nim
17:24:05*Pisuke quit (Ping timeout: 240 seconds)
17:24:10FromGitter<mratsim> Are you really the author of Nemerle @Araq?
17:25:08dom96lol, somebody really messed up the copy and paste
17:25:14GitDisc<Lite5h4dow> xD
17:41:30*floppydh quit (Quit: WeeChat 2.0.1)
17:57:11*yglukhov quit (Remote host closed the connection)
17:57:48*yglukhov joined #nim
18:01:27*SenasOzys quit (Ping timeout: 240 seconds)
18:02:25*sendell quit (Remote host closed the connection)
18:02:45*yglukhov quit (Ping timeout: 264 seconds)
18:06:25GitDisc<Lite5h4dow> just wondering, are there any good ui packages for nim?
18:09:50*gokr joined #nim
18:11:41FromGitter<zetashift> @Lite5h4dow try https://github.com/zacharycarter/nuklear-nim or https://github.com/yglukhov/nimx
18:12:19GitDisc<Lite5h4dow> excellent, i was trying to use the ui package, but it requires libui
18:12:31GitDisc<Lite5h4dow> and i dont know how to get it working on windows
18:14:26*endragor quit (Remote host closed the connection)
18:14:32FromGitter<zetashift> nimx could be a really great with some docs(I will try to add something if I ever get good!)
18:15:25GitDisc<Lite5h4dow> what about nuklear?
18:15:39GitDisc<Lite5h4dow> is there any documentation for nim nuklear?
18:16:10FromGitter<zetashift> nuklear is a so called "immediate mode gui" (https://en.wikipedia.org/wiki/Immediate_Mode_GUI)
18:16:33GitDisc<Lite5h4dow> oh ok
18:16:44GitDisc<Lite5h4dow> so are all the commands from nuklear the same in nim?
18:17:22FromGitter<zetashift> if you check the github there is an /examples/ folder, have a quick look and maybe you won't even need docs
18:18:41FromGitter<zetashift> you could generate a nimdoc and look at all available procs and types
18:19:45GitDisc<Lite5h4dow> definately
18:19:53GitDisc<Lite5h4dow> i do want to be part of the nim community
18:20:13GitDisc<Lite5h4dow> im just afraid to do anything thanks to the reception i get when i ask n00b questions
18:20:36FromGitter<mratsim> Nah it’s just Araq, don’t worry even veterans get his snarky remarks
18:20:42FromGitter<zetashift> Imho just ask away
18:21:33FromGitter<mratsim> UI is a pain in any language it seems :/ especially cross-platform: Electron, GTK, wxWidgets, QT or QML ...
18:21:35FromGitter<zetashift> However I don't know much about nim gui packages so I might not be able to help
18:22:08FromGitter<mratsim> Somehow a couple Nimmers just choose to use SDL2 or OpenGL :P
18:23:16FromGitter<zetashift> @mratsim that's why I like nimx so much, the example looks neat and shows why Nim and fast GUI development could mix well
18:36:38enthus1astDo i miss something here or is the Error message reversed? https://gist.github.com/anonymous/7a790b404c6e1c92ef5818f6b0c3ca64
18:38:02*BitPuffin quit (Remote host closed the connection)
18:44:35GitDisc<Lite5h4dow> ill be honest, ive never made a program with a GUI before
18:45:32GitDisc<Lite5h4dow> so i dont know where to start, i want to use nuklear, but i dont know how to install it, there are no instructions on the github
18:46:10*PMunch joined #nim
18:46:38miran_Lite: hey, you just have made nim work couple of minutes ago. how about starting a bit lighter? ;)
18:47:37GitDisc<Lite5h4dow> this isnt my first time with nim
18:47:45GitDisc<Lite5h4dow> just first time on a windows machine
18:47:52GitDisc<Lite5h4dow> i was an an arch machine before
18:48:06PMunchWhy did you downgrade?
18:48:21enthus1asti still like nigui but it is a little jung
18:48:26GitDisc<Lite5h4dow> https://github.com/Lite5h4dow/BG-Manager
18:48:45GitDisc<Lite5h4dow> i didnt, just want to write nim code on my college laptop too
18:49:06PMunchAh, makes sense :)
18:49:44PMunchWell the nuklear bindings are probable just a "nimble install nuklear" to get installed
18:49:55GitDisc<Lite5h4dow> i tried that
18:49:58GitDisc<Lite5h4dow> nothing
18:50:37PMunchHmm, then "git clone https://github.com/zacharycarter/nuklear-nim"
18:50:39GitDisc<Lite5h4dow> https://pastebin.com/YVYpk6dj
18:50:48PMunchcd into that directory and "nimble install" (without arguments)
18:51:10GitDisc<Lite5h4dow> ok
18:51:14PMunchnuklear-nim?
18:51:24GitDisc<Lite5h4dow> same thing
18:51:34PMunchAh okay
18:51:44PMunchThe manual clone and install should work though
18:51:50PMunchAs the repo contains a .nimble file
18:52:26PMunchIt also has a submodule in src linking to the nuklear library
18:52:38PMunchNot sure if git clone defaults to pulling both
18:53:27GitDisc<Lite5h4dow> ok, so i installed it via the git clone and nimble install commands
18:53:33GitDisc<Lite5h4dow> but is that all i need to do?
18:53:40GitDisc<Lite5h4dow> or do i need to download a dependancy
18:55:25PMunchNot sure, check if the repo in src is there
18:55:57PMunchAh
18:56:14PMunchApparently "git clone --recurse-submodules" is the command you should've used
18:56:19PMunchWith the repo on the end of course
18:56:41GitDisc<Lite5h4dow> rest in peace
18:56:49PMunch?
18:57:29GitDisc<Lite5h4dow> ill have to install over it im guessing
18:57:46PMunchWell, you could just manually clone it into the correct place
18:57:56PMunchNot sure if nimble keeps the git repository files aronud
18:58:03*SenasOzys joined #nim
18:58:10PMunchIf so there is a command to pull the submodules in a repository without them
19:00:46GitDisc<Lite5h4dow> well i deleted the old git, and did the recursive thing
19:00:51GitDisc<Lite5h4dow> then installed over it
19:00:57GitDisc<Lite5h4dow> is that about right?
19:00:58*cyuz89yfd9 joined #nim
19:01:19PMunchShould be, yeah
19:02:07GitDisc<Lite5h4dow> shweet, not to spend the rest of my life understanding this example. brb
19:02:10GitDisc<Lite5h4dow> xD
19:02:24GitDisc<Lite5h4dow> now*
19:02:52FromGitter<zetashift> zacharycarter (the one who made the bindings) is usually in the chat, but I think he is on a way different timezone
19:03:14GitDisc<Lite5h4dow> oh
19:03:14GitDisc<Lite5h4dow> ok
19:03:22GitDisc<Lite5h4dow> well i might try again anoher time
19:03:54FromGitter<zetashift> If no one responds make a list and open an issue and link it here or open a forum post
19:04:20GitDisc<Lite5h4dow> ok
19:04:48GitDisc<Lite5h4dow> as i get used to nuklear ill document the procs and what they do, and ill make a wiki page
19:06:48PMunchNice!
19:07:17GitDisc<Lite5h4dow> one of the few things im alright at from what ive been told
19:09:15FromGitter<zetashift> practice makes perfect
19:35:57*xet7 quit (Quit: Leaving)
19:45:38*chemist69 quit (Ping timeout: 265 seconds)
19:45:42*kaliy joined #nim
19:59:02*chemist69 joined #nim
19:59:30FromGitter<mratsim> you can diretcly do nimble install https/www.github.com/name/repo too @PmMunch ;)
19:59:35FromGitter<mratsim> PMunch*
20:00:01PMunchOh you can? neat
20:00:07PMunchDoes that grab submodules though?
20:13:26GitDisc<Lite5h4dow> oooh
20:13:37dom96yep
20:13:45GitDisc<Lite5h4dow> yeah unfortunately the example is wither broken or not clear
20:13:52GitDisc<Lite5h4dow> either*
20:14:09GitDisc<Lite5h4dow> for nuklear-nim
20:16:15*qwertfisch is now known as qwert-san
20:17:33GitDisc<Lite5h4dow> glfw3 isnt a valid import
20:18:18PMunchAh, you probably need to install that as well
20:18:21GitDisc<Lite5h4dow> nim has glfw, but you dont call it with glfw3, so either he is using a rogue package or im being a tard again
20:18:25GitDisc<Lite5h4dow> i did
20:21:10GitDisc<Lite5h4dow> most likely im being a tard
20:22:20PMunchHmm, yeah I tried to look for the glfw3 package as well
20:22:25PMunchNot sure what's up with that
20:22:48PMunchhttps://github.com/zacharycarter/nuklear-nim/blob/master/examples/nuklear_nim_examples.nimble#L12
20:23:16PMunchApparently it's this: https://github.com/rafaelvasco/nimrod-glfw
20:23:29GitDisc<Lite5h4dow> untill i get the chance to talk to zacharycarter idk whats up
20:23:34GitDisc<Lite5h4dow> there is also this one
20:23:41GitDisc<Lite5h4dow> https://github.com/ephja/nim-glfw
20:23:42PMunchAh, allmost
20:23:51PMunchNow it just complains about roboto_regular
20:24:08GitDisc<Lite5h4dow> oh?
20:24:23GitDisc<Lite5h4dow> why have 2 bindings for opengl?
20:24:28GitDisc<Lite5h4dow> thats just confusing
20:25:06PMunchAh, now I'm just getting some type mismatch errors
20:25:14PMunchBut all the imports are working fine
20:25:18*nsf quit (Quit: WeeChat 2.0.1)
20:25:33PMunchIf you stand in the examples folder and run "nimble install" it will fetch the required package
20:25:36PMunchpackages*
20:25:47*birdspider quit (Quit: Leaving)
20:25:54*sz0 joined #nim
20:26:07PMunchBut it seems like one of them have updated and uses some different types now
20:26:22PMunchOr maybe it's just something that has changed within Nim
20:29:12GitDisc<Lite5h4dow> now im missing opengl -_-
20:29:20GitDisc<Lite5h4dow> god why does this have to be so hard
20:29:36*r3d9u11 quit (Remote host closed the connection)
20:29:40GitDisc<Lite5h4dow> oh ok
20:29:51GitDisc<Lite5h4dow> idk what up with the example
20:30:09GitDisc<Lite5h4dow> i get cannot open opengl after compile
20:30:15GitDisc<Lite5h4dow> the imports are fine tho yh
20:36:28*couven92 joined #nim
20:38:05enthus1astthe example uses gles3 afaik
20:38:29GitDisc<Lite5h4dow> but there are 2
20:38:39GitDisc<Lite5h4dow> by 2 different autors
20:39:25GitDisc<Lite5h4dow> if you install glfw it installs nim-glfw but there is nimrod-glfw
20:39:53GitDisc<Lite5h4dow> and nimrod-glfw is the one nuklear uses
20:40:16GitDisc<Lite5h4dow> not to mention the example code dosent even work
20:43:14*PMunch quit (Quit: leaving)
20:45:12GitDisc<Lite5h4dow> so idk where to start
20:48:16enthus1astthere are also gtk2/3, nimx, nigui
20:48:43enthus1astcan somebody wrap the lazarus lcl please :D
20:48:48GitDisc<Lite5h4dow> but nuklear looks so pretty
20:50:53*Trustable quit (Remote host closed the connection)
20:52:01*miran_ quit (Remote host closed the connection)
20:57:24GitDisc<Lite5h4dow> im gonna use nigui for now
20:57:34GitDisc<Lite5h4dow> until nuklears fixed
21:06:02*arthurz joined #nim
21:07:20GitDisc<Lite5h4dow> nigui dosent even work
21:07:24GitDisc<Lite5h4dow> -_-
21:07:36GitDisc<Lite5h4dow> unknown io error
21:10:43GitDisc<Lite5h4dow> this is quite annoying
21:16:59GitDisc<Lite5h4dow> now to try nimx
21:17:01GitDisc<Lite5h4dow> -_-
21:17:39enthus1astnimx needs sdl
21:17:45enthus1astah
21:17:58dom96unknown io error sounds like a bug in Nim
21:19:43GitDisc<Lite5h4dow> yh
21:20:01GitDisc<Lite5h4dow> i just got the same error while truing to install nimx
21:20:13GitDisc<Lite5h4dow> ran the compile for a 4th time and it actually compiled this timer
21:20:13enthus1asti had "unknown io error" once on windows 7, the solution was to disable filesystem cache / indexing in windows
21:20:17GitDisc<Lite5h4dow> ran the compile for a 4th time and it actually compiled this time
21:20:24enthus1astwindows?
21:20:27GitDisc<Lite5h4dow> yh
21:20:31GitDisc<Lite5h4dow> how do i do that?
21:20:33enthus1asti bet it is this error
21:20:59GitDisc<Lite5h4dow> yh it is
21:21:05enthus1astcan you delete object file in nimcache by hand?
21:21:18GitDisc<Lite5h4dow> yh
21:21:35enthus1astwhat does yh mean?
21:23:36*rokups quit (Quit: Connection closed for inactivity)
21:26:52FromGitter<zetashift> 'yeah'
21:30:50GitDisc<Lite5h4dow> sorry, im lazy
21:36:59*xkapastel quit (Quit: Connection closed for inactivity)
21:37:39*natrys quit (Quit: natrys)
21:39:04*yglukhov joined #nim
21:43:18*yglukhov quit (Ping timeout: 240 seconds)
21:47:16enthus1astin my case (back then) gcc could not write the object files. The files where neither moveable nor deletable nothing. Then after a few seconds it stopped. https://forums.adobe.com/thread/676303
21:47:42enthus1asthttps://forums.adobe.com/servlet/JiveServlet/downloadImage/2-3843078-78273/Windows_Indexing.png
21:50:02GitDisc<Lite5h4dow> ah, ty
21:50:09GitDisc<Lite5h4dow> does it have any side effects?
21:50:38enthus1astit made it work back then ;)
21:50:56GitDisc<Lite5h4dow> another question reading and writing from files, just took a look at the standard library and i cant seem to find any
21:55:49dom96surely Google can help you in this case :)
21:55:53*MJCaley joined #nim
22:03:51*gangstacat joined #nim
22:06:02*MJCaley quit (Quit: MJCaley)
22:06:02FromGitter<mratsim> hint, usually streams are good
22:16:31GitDisc<Lite5h4dow> im looking at them, but i cant get my head around them
22:16:49GitDisc<Lite5h4dow> i dont know which one to use for what
22:16:53GitDisc<Lite5h4dow> and there are no examples
22:17:18GitDisc<Lite5h4dow> with the exception of the top one
22:17:23GitDisc<Lite5h4dow> which bearly tells me anything
22:17:50GitDisc<Lite5h4dow> you mean this right? : https://nim-lang.org/docs/streams.html
22:18:36*xet7 joined #nim
22:19:44GitDisc<Lite5h4dow> ive used streams before, but i was parsing yaml variables for nim yaml.
22:20:05GitDisc<Lite5h4dow> so it handled some of the stuff for me
22:20:50*dddddd quit (Remote host closed the connection)
22:28:59*smt joined #nim
22:29:13dom96https://rosettacode.org/wiki/File_input/output#Nim
22:29:27*smt left #nim (#nim)
22:31:20*athenot quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:31:34FromGitter<mratsim> For config you have nimYAML and parsecfg and also the json module
22:38:03*gangstacat quit (Quit: Ĝis!)
22:43:38*gangstacat joined #nim
22:44:39GitDisc<Lite5h4dow> oh god
22:45:27*solitudesf quit (Ping timeout: 260 seconds)
22:45:47*gangstacat quit (Client Quit)
22:46:02*couven92 quit (Quit: Client Disconnecting)
22:48:04*yglukhov joined #nim
22:48:25FromGitter<sclee15> Thanks @Araq and @dom96 option module is the key
22:52:33*yglukhov quit (Ping timeout: 264 seconds)
23:02:24*gokr quit (Ping timeout: 256 seconds)
23:19:52*xkapastel joined #nim
23:27:37enthus1asthttps://gist.github.com/anonymous/d23f57b5526bc4e63d476c0744605c94
23:27:42enthus1astdom96: ^
23:47:41*vlad1777d joined #nim
23:53:40dom96huh, interesting
23:58:25*cyuz89yfd9 quit (Ping timeout: 265 seconds)