<< 07-09-2016 >>

00:02:55*mcc joined #nim
00:06:46*Roin quit (Ping timeout: 252 seconds)
00:24:09*girvo joined #nim
00:29:30*girvo quit (Ping timeout: 276 seconds)
00:38:34*Demos quit (Ping timeout: 240 seconds)
00:43:31*Jesin quit (Quit: Leaving)
00:43:33*girvo joined #nim
00:48:27*girvo quit (Ping timeout: 265 seconds)
00:57:01mccIs it weird that an {.emit.} cannot be an expression?
01:03:22mccLike, it can be a statement, but you can't say x = {.emit:"3.4".}.
01:12:31*chemist69 quit (Ping timeout: 250 seconds)
01:25:49*chemist69 joined #nim
01:40:46*Demos joined #nim
01:42:06*ftsf_ joined #nim
01:50:25*allplayersdds joined #nim
01:54:09*allplayersdd quit (Ping timeout: 260 seconds)
01:57:15*brson quit (Ping timeout: 276 seconds)
01:59:58*allplayersdds is now known as testt
02:02:27*Demos quit (Read error: Connection reset by peer)
02:08:40*Demos joined #nim
02:23:13*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
02:24:01*brson joined #nim
02:35:36*Demos_ joined #nim
02:38:34*Demos quit (Ping timeout: 240 seconds)
02:44:20*girvo joined #nim
02:49:17*girvo quit (Ping timeout: 265 seconds)
03:12:12*brson quit (Quit: leaving)
03:41:19*krux02 quit (Remote host closed the connection)
03:58:24*Sentreen quit (Ping timeout: 260 seconds)
04:06:36*jo_ joined #nim
04:06:43jo_Hi #nim.
04:07:27ftsf_ahoy jo_
04:09:25*Sentreen joined #nim
04:09:49*desophos quit (Read error: Connection reset by peer)
04:09:56jo_I come from Rust land seeking refuge.
04:10:53jo_And, hopefully, a decent linear algebra + image library.
04:11:47ftsf_there's linalg, can't comment on how decent it is
04:12:25ftsf_http://nim-lang.org/docs/lib.html have a look at this list of libs
04:13:32jo_Yeah, haven't fiddled with any, but linalg looks decent.
04:14:11jo_Any recommendations for image library? I saw lib, but aside from FreeImage bindings I didn't see any. Is it common Nim practice to just bind to a C-library?
04:15:58ftsf_i don't know of any native image libraries, that's definitely an area that could use some work
04:16:18*kulelu88 quit (Quit: Leaving)
04:16:20ftsf_i've used DevIL in the past but haven't tried the nim wrappers
04:16:47ftsf_heading out for lunch, good luck!
04:22:19mccthere's a nim port of glm but if you want "a linear algebra library" i assume you want something more sophisticated than that
04:25:04jo_Yeah, that was the nail in the coffin today. Rust has nalgebra, but it's basically a noisy interface with no underlying implementation. Others aren't much better.
04:25:21jo_If I can have a Python/Numpy-esque library (which linalg seems to be, nearly) I'll be quite happy.
04:25:46jo_Only thing I need then is something to open images or media, read to a Matrix, and write to image/media.
04:30:54mcci'll be curious which image library you wind up going with, i'll need one of those at some point.
04:33:37jo_nimage can only load PNGs at the moment, otherwise I imaging I'd be using that.
04:35:07mccmy go-to is stb_image.
04:35:19mccand stb_image_write.
04:35:22mccthat's a c library but i imagine that won't be very hard to bind to nim, as it's about three functions
04:36:37jo_Any need to worry about freeing memory when calling C libraries?
04:45:15*girvo joined #nim
04:49:44*girvo quit (Ping timeout: 250 seconds)
05:00:46*GangstaCat quit (Quit: Leaving)
05:03:09*Demos_ quit (Ping timeout: 260 seconds)
05:04:06*GangstaCat joined #nim
05:13:04*GangstaCat quit (Ping timeout: 260 seconds)
05:21:24*GangstaCat joined #nim
05:23:51Araqjo_: yes but you can wrap it in a 'ref T' with a finalizer to take care of that
05:25:01ftsf_yeah i used stb_image/write for my app but it's very limited, but great for just reading/writing a png or something
05:34:39federico3BlaXpirit: https://paragonie.com/blog/2016/05/how-generate-secure-random-numbers-in-various-programming-languages
05:51:07*abeaumont_ quit (Remote host closed the connection)
06:02:17ftsf_why does a method have a "lock level"?
06:05:48ftsf_Warning: method has lock level <unknown>, but another method has 0 [LockLevel]
06:06:02ftsf_it's not clear what one should do to resolve this warning, or why it is caused
06:12:15Araqannotate the <unknown> method with locks: 0 and see what happens
06:16:48ftsf_Warning: declared lock level is 0, but real lock level is <unknown> [LockLevel]
06:18:18Araqyeah well that's not really helpful is it
06:18:27*Arrrr joined #nim
06:18:27*Arrrr quit (Changing host)
06:18:27*Arrrr joined #nim
06:18:28Araqcan you report it on github?
06:18:30ftsf_not particularly
06:19:03ftsf_i can, but i'm not really sure what the actual issue is (other than a not very useful warning message)
06:19:40Araqyou know you can disable the warning, right?
06:20:00Araqbut still the compiler should produce something helpful with the explicit .locks: 0 annotation
06:20:04ftsf_https://github.com/nim-lang/Nim/issues/3074 ahh this seems to be the same issue
06:20:44ftsf_is the warning important?
06:21:13Araqno.
06:21:36ftsf_ok
06:21:51Araqdo you use threads and locks?
06:22:00ftsf_nope
06:22:34ftsf_i do have --threads:on for SDL audio stuff
06:22:47ftsf_but not using any locks that i know of
06:25:08Araqadd .locks: 0 for your proc *type*
06:26:24ftsf_cool, that does the trick =)
06:27:57ftsf_thanks
06:28:22Araqit's the obvious solution after your read the tiny section about nim's effect tracking
06:28:28Araqright?
06:29:41ftsf_that stuff kinda went over my head
06:31:00ArrrrAraq, do you think documenting the compiler would encourage people to submit fixes for it? Or it is unlikely that someone that cannot understand it now would colaborate with some wiki?
06:32:54AraqI don't really know what's there to document. we have http://nim-lang.org/docs/intern.html
06:33:06Araqdo you know about it?
06:34:33*Demon_Fox quit (Quit: Leaving)
06:36:12AraqI accept compiler PRs cleaning up the internals of the compiler.
06:36:24Arrrrhttps://i.imgur.com/8QLs9kF.png
06:36:25Araqin fact I'm getting a lot of these, these days :-)
06:37:14Araqmost of the stuff in the compiler is actually pretty straight-forward and then you realize it's all horrible.
06:37:39Araqcome up with an algorithm to translate Nim types into C types to see what I mean.
06:38:25AraqC has forward decls, but only for structs. And only pointers to an unresolved forward decl are valid.
06:39:01AraqJavaScript lacks pointers and goto.
06:39:13Arrrrha
06:40:33Araqlamba lifting is just complex. rewrote the pass three times.
06:41:47flyxI always wonder how the compiler manages to do the right thing most of the time when it cannot even manage to output properly indented code. I mean, I'd understand if there was *no* indentation, but most of the time, there is rather *random* indentation
06:42:55flyxis that some feature that hasn't been finished?
06:43:35Araqyup
06:46:06*girvo joined #nim
06:48:27*stisa joined #nim
06:51:02*girvo quit (Ping timeout: 265 seconds)
06:53:44*mcc quit (Quit: Connection closed for inactivity)
07:07:51*yglukhov joined #nim
07:09:02*bjz joined #nim
07:09:49*nairobi joined #nim
07:11:12*bjz quit (Client Quit)
07:11:43*bjz joined #nim
07:17:40*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
07:19:33*LeNsTR quit (Changing host)
07:19:33*LeNsTR joined #nim
07:27:49*bjz joined #nim
07:29:28*foocraft joined #nim
07:31:17*gokr joined #nim
07:35:40*foocraft quit (Quit: Leaving)
07:38:17*Andris_zbx joined #nim
07:39:07*foocraft joined #nim
07:46:04*delian66_ quit (Ping timeout: 240 seconds)
07:48:35antranigvtestt: ping :) yes, well, the asteriks that allows the variable/class/procedure to be exported :)
07:48:42antranigvtestt: that comes from Oberon :)
07:48:46*Trustable joined #nim
07:50:03antranigvfor exaple, VAR x* : integer; y : char; now x is exported (can be seen if imported from another module) while y can be not :))
07:55:14testtso .. its literally just a shorthand for writing public/private
07:55:17testtdoesnt seem so impressive
07:55:27antranigvtestt: no it's not :)
07:55:37antranigvin other languages you MUST write public/private
07:55:55antranigvin Oberon/Nim you just export it; by default everything is private
07:56:23testtok so one tiny additional thing which btw exists in many other languages too, c++ everything is private by default i believe
07:56:52antranigvon Oberon-2 you can also write OOP in records, a.k.a. define procedures in records, without using the keyword classes
07:57:06antranigvtestt: well it's not tiny, it also makes the compiler run faster ;)
07:57:30antranigvusually languages like Oberon and Nim don't care only about the programmer, but also about the compiler
07:57:50ldleworkpff
07:57:56antranigvI read the docs yesterday, this language is love
07:57:58ldleworkI think you're thinking of golang.
07:58:16antranigvI don't know much about Go; so sad
07:58:38ldleworkmore like bliss.
07:58:55antranigvpardon; what's bliss?
07:59:12antranigvlike "good, goood" ? :)
07:59:16antranigvwhy so?
08:02:37flyxtestt: no, C++ cannot handle public/private. in C++, the preprocessor decides what is visible and what is not. if it is defined in a header, it is public. if it is defined in the implementation, it is private
08:02:59flyxand yeah, there is public/private for classes, but that is just a small subset
08:03:18antranigvI still think that Nim is nicer
08:03:19flyxit also means something completely different
08:03:24testtflyx, that is not true
08:03:34testtunless you count "i can reverse engineer a binary" as public
08:03:56testtwhich surely you wouldnt do because you are not a dishonest debater right
08:05:27antranigvtestt: sorry, what does RE'ing has to do with the language's pp?
08:05:32flyxreverse engineering the binary has nothing to do with it. I am tolking about source level
08:06:05*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
08:06:17testtso making a member private in c++ doesnt make it private?
08:06:18ftsf_I really like nim's version of module level exporting, except that I need to put most stuff in a common types.nim if i have dependent types
08:06:24ftsf_once that is fixed it'll be great
08:06:51antranigvtestt: it's never private; it is included in the binary, just the other modules can't see it :)
08:07:19testteverything is in the binary, how is that an argument
08:07:22flyxthere is `static` to control the binary scope
08:07:45flyxbut that has no impact on source level visibility
08:07:58antranigvftsf_: so you mean you don't like exporting everything when you have a types.nim file? :)
08:08:05ftsf_antranigv, correct
08:08:20antranigvftsf_: ah, I see, btw, what would you suggest?
08:08:53ftsf_antranigv, for now I just export everything, once that issue is resolved I'll stop using a types.nim
08:09:35antranigvftsf_: I think I did not understand you; so you want a way to export all at once? :)
08:09:43antranigvbtw, we do the same thing https://github.com/vishaps/voc/blob/da88496c5f0e45a3057530fd4fc76d35d6845824/src/test/server/sockets.Mod#L6
08:10:43ftsf_antranigv, no, I am currently exporting everything in my types. But that's not ideal. I want to be able to forward declare dependent types and use them from different modules.
08:11:07ftsf_https://github.com/nim-lang/Nim/wiki/Roadmap I assume "Weaken the requirements for forward declarations" will resolve my issues
08:11:37antranigvftsf_: is there any language as an example for that?
08:11:37ftsf_anyway, must be off! enjoy your nimming!
08:11:44antranigvftsf_: have fun!
08:11:47*ftsf_ quit (Quit: :q!)
08:11:51antranigvftsf_: ping me when you get back! :))
08:14:52antranigvAraq: do now you not only have the `proc` keyword but also `func` ? I didn't get the FAQ I think
08:15:59*nairobi quit (Remote host closed the connection)
08:16:16*nairobi joined #nim
08:16:26antranigvs/do/so
08:23:02Arrrrantranigv: an example for languages that does not require to forward declare procs or types?
08:23:43antranigvArrrr: yes :) either I've never met any, or I just don't that it's called that way
08:25:29Arrrrhttps://glot.io/snippets/ei7vl1htbf
08:25:35Arrrrhttps://glot.io/snippets/ei7vm0c9qf
08:26:32flyxJava cannot forward declare types though
08:26:48antranigvArrrr: oh, so you can define testA as testB before you declare testB()? right?
08:27:28ArrrrExactly, on nim you have to tell the compiler testB exists, even if you don't define the body
08:27:59ArrrrAbout classes in java, im not so sure.
08:29:11antranigvArrrr: so this code soes work in Nim, yes? but not for multiple modules yet? :)
08:29:57ArrrrIt doesn't unless you write before testA "proc testB"
08:30:16Arrrror well, you declare and define testB before testA
08:30:29antranigvahh, so the plan is to make this happen? :) cool! :)
08:31:30AraqI came pretty far with this, but have it all in a branch that cannot be merged.
08:31:37ArrrrYes, but as far as i can tell (i recall an entry talking on the subject from msdn blog) it is a difficult task.
08:31:48AraqI've grown to dislike git branches for this reason
08:32:09ArrrrDoes it handle types too?
08:32:16antranigvbut doesn't forward decleration slow down the compiler?
08:32:21Araqit's not the first time this happened, I really prefer 'when's in my code over git branches
08:32:28AraqArrrr: yes.
08:32:50Araqantranigv: not as far as I can tell.
08:33:18Araqthe reason forward decls are in the language are for easier metaprogramming as krux02 noted
08:33:44antranigvI'm actually thinking that Nim is good also for teaching
08:33:45*yglukhov quit (Ping timeout: 276 seconds)
08:34:08antranigvwell I personally teach starters with Oberon-2, but then moving to Nim for daytoday stuff would be amazing
08:34:10Araqthey are also an historical accident I guess. I didn't think it would cause that much resistance.
08:34:22antranigvthanks for the great job Araq ! ^_^
08:37:46ArrrrTalking of which, i fear to say, since the path/import affair, compilation takes now more time. Not that i'm complaining.
08:38:40antranigvI really would like to see and option of Wirthian like :=/= syntax instead of C-like =/== syntax
08:40:22flyxantranigv: that ship has sailed a long time ago
08:40:26antranigvI think I also missed the records/structs? :/
08:40:33antranigvflyx: hehehe
08:40:49antranigvflyx: I assume most of programmers like the C-like syntax more, aye?
08:40:49ArrrrYou can use templates. Nim has tuples
08:41:16antranigvtemplates ars records?
08:41:26flyxantranigv: it is just too common in programming languages. doing something else will make people complain immediately
08:41:50antranigvflyx: oh too bad, I see :)
08:42:02Arrrrhttps://glot.io/snippets/ei7w2awhmb
08:42:09antranigvArrrr: ah you mean templates for the := ? :D yea that would be cool
08:42:32Arrrrbut people will get confused if you use them.
08:42:54antranigvyes yes I know :) coming from Pascal and Oberon, we usually don't see == much
08:44:42flyxthe trend goes to === anyway :)
08:44:49antranigvwhat?
08:44:56antranigvwhats ===?
08:44:57antranigvo.O
08:45:02flyxit's what all those fancy scripting languages use
08:45:14antranigvwell AFAIK we don't have it in Python
08:45:25flyxno, because Python has a sane typing system
08:45:31Arrrrhah
08:45:41antranigvahaha
08:45:47flyxJS and PHP have it because `0 == false` returns true or something
08:45:54flyxI do not have the chart in my head
08:45:56antranigv0.)
08:45:58antranigvo.O
08:46:04antranigvwtf
08:46:15Arrrralso 100 == "100"
08:46:15flyxthere: http://phpsadness.com/static/pages/sad/52/order-full-eq.png
08:46:51antranigvoh so tuples in Nim are like records in Pascal not like tuples in Python
08:46:58*girvo joined #nim
08:47:07flyxno, objects are Nim's records
08:47:27antranigvoh, why?
08:47:57flyxif you declare two objects with the same field names and types, they are different. if you do it with tuples, they are the same.
08:48:16antranigvon Objects you can also have functions, right? that would make it like records in Oberon-2
08:48:19antranigvhmm
08:48:37antranigvohhh
08:48:48flyxNim has multimethods that work on objects, yes
08:49:36antranigvso in the tutorial example, person = teacher is true
08:50:22flyxantranigv: not quite
08:50:49antranigvah shit
08:50:54antranigvI went to pascal again
08:51:10antranigvso now I'm declaring person's fields from teacher? aye? :D
08:51:15flyxantranigv: see, if I declare two types, `A = tuple[a, b: int]` and `B = tuple[a, b: int]`, then I can assign any values of type `A` to variables of type `B`
08:51:26Araqantranigv: := vs = is not about popularity, := doesn't make too much sense in Pascal either, IMO
08:51:31*girvo quit (Ping timeout: 244 seconds)
08:51:37Araqconst x = 3 // ok
08:51:43Araqconst 3 = x // oops
08:51:58*nairobi quit (Read error: Connection reset by peer)
08:52:19Araqtype Foo = record end; // ok
08:52:27Araqtype record end = Foo; // oops
08:52:40antranigvaha~
08:52:51*nairobi joined #nim
08:54:44*coffeepot joined #nim
09:11:56*elrood joined #nim
09:11:57*yglukhov joined #nim
09:19:46hohlerdeThe very first nim compiler, was it written in Free Pascal or Delphi?
09:23:03*bjz joined #nim
09:32:39coffeepotstrange... I updated nim yesterday, the tableimpl.nim module has {.oldimmediate ...} in it in several places, yet the current version doesn't have this, and according the the history tableimpl.nim was last updated june 2nd
09:32:47*coffeepot scratches head adn shrugs
09:36:13antranigvhohlerde: I'd assume it should be fpc, heh
09:37:52ArrrrMaybe you are not develing it
09:38:14euantor>Just use libsodium if you can
09:38:27euantorSounds about right, libsodium is a brilliant library
09:38:31*xet7 quit (Quit: Leaving)
09:39:17cheatfateeuantor, why it brilliant? it just a library :)
09:39:43euantorBecause it makes all the right choices by default and is used across a lot of platforms/languages
09:39:48coffeepotwell tables wouldn't compile as it doesn't like .oldimmediate. so i'd think it would fail travis
09:40:06coffeepoti definitely gitted the latest version yesterday, as i only use head
09:40:17euantorI like it when there are clear, sane libraries that are used in lots of places - makes it more likely that any problems will be found quickly
09:40:18coffeepotanyway, no biggie, downloading new one now, just... odd
09:40:47coffeepotmainly odd because there's no record of it in github's history
09:42:52coffeepotdatestamp for tableimpl.nim is 6/9/16
09:43:13coffeepotoffending lines 82: template maybeRehashPutImpl(enlarge) {.oldimmediate, dirty.} =
09:43:29coffeepotand 90: template putImpl(enlarge) {.oldimmediate, dirty.} =
09:43:55coffeepotanyway I still have the file if it's of interest
09:46:05*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:47:28coffeepotok wtf, oldimmediate stuff is still in there? Yet not in https://github.com/nim-lang/Nim/blob/master/lib/pure/collections/tableimpl.nim
09:47:56coffeepotwait, is that ^ the master as in 'release' or 'devel'?
09:48:11def-master = release
09:48:15def-devel = devel
09:49:01coffeepotah well that explains it then lol!
09:49:09def-it's a bit confusing that there are so many WIP or other old branches on nim-lang/Nim, maybe they should be cleaned up or moved to user repos
09:49:38coffeepotalthough now gotta work out why shared table is reporting invalid pragma "oldimmediate"
09:50:08def-you might be running with devel stdlib and master compiler
09:50:45coffeepothmm, i followed instructions here http://nim-lang.org/download.html for downloading dev
09:57:18coffeepotso apparently tables works okay, but sharedtables (which uses tableimpl) says invalid pragma "oldimmediate"
09:57:42coffeepoteven though oldimmediate is also used in tables.nim
10:01:20coffeepotahh apparently shared tables needs include "system/inclrtl" near the top to compile?
10:02:17coffeepoti don't know if that's overkill to include that. Tables includes it, but I guess the main part is just the bit at the top of incltrl, namely:
10:02:22coffeepotwhen not defined(nimImmediateDeprecated):
10:02:22coffeepot {.pragma: oldimmediate, immediate.}
10:02:22coffeepotelse:
10:02:22coffeepot {.pragma: oldimmediate.}
10:02:48coffeepotno shared table test in travis?
10:04:50Arrrr#coffepot-rambles
10:07:15*nairobi quit (Ping timeout: 250 seconds)
10:07:23coffeepothahaha yes, it is known
10:08:51coffeepotmore coffee incoming so brace yourselves for ramblings
10:09:03ArrrrMy body is ready
10:09:44*nairobi joined #nim
10:09:51coffeepotlmao XD
10:15:19*nairobi quit (Read error: Connection reset by peer)
10:15:41*bjz joined #nim
10:16:50coffeepotthere doesn't seem to be a way to iterate over pair/value keys with sharedtable using the locks
10:21:32*dddddd joined #nim
10:34:11*brechtm_ joined #nim
10:36:10*brechtm__ joined #nim
10:38:12*brechtm quit (Ping timeout: 265 seconds)
10:39:31*stisa quit (Quit: quitting...)
10:39:46*brechtm_ quit (Ping timeout: 255 seconds)
10:47:47*girvo joined #nim
10:52:26coffeepotwell, I got shared tables working, and I implemented a version of shared table pairs that just locks the whole lot until the iterator's done. Yeah it's pants but had to be able to step through them, I guess if you're stepping through all the pairs you want to lock the whole lot anyway else someone could sneak in and delete/add one whilst you're ste
10:52:26coffeepotpping
10:52:51*girvo quit (Ping timeout: 276 seconds)
10:53:53coffeepoti like the withValue approach with the inject value. WAY better than 'hasKey' for almost every use case I have
10:54:58coffeepotif hasKey: getValue seemed so wasteful with hashing twice, so well glad I don't have to use that pattern any more
10:55:26coffeepotand I'm not a fan of getordefault.
10:55:48coffeepotthis has been a coffeepot ramble, thanks for listening #nim
10:55:59coffeepot:)
10:56:53*krux02 joined #nim
10:59:18*nairobi joined #nim
11:02:11*Snircle joined #nim
11:05:47*pie__ joined #nim
11:08:34*pie_ quit (Ping timeout: 240 seconds)
11:15:04*krux02 is now known as krux02_
11:15:27coffeepotinteresting that sharedtables has withValue but tables does not
11:16:36coffeepotwait, it does i missed it :)
11:18:05*krux02_ is now known as krux02
11:20:53*brechtm__ quit (Remote host closed the connection)
11:21:30*brechtm joined #nim
11:22:24*bjz_ joined #nim
11:23:09*bjz quit (Ping timeout: 265 seconds)
11:25:21*Kaini quit (Remote host closed the connection)
11:26:16*Kaini joined #nim
11:35:02*opi joined #nim
11:35:05opihello
11:35:29euantorHey
11:36:13opiman, I didn't know (but I should guess) there's Nim IRC channel I can lurk ;3
11:36:29opimaybe I'll finally get some time to play with it
11:36:37euantorIt's well hidden under the community link on the site
11:37:48opieuantor: yeah, I always bounce from main page stright to docs
11:44:27ArrrrYou may prefer https://gitter.im/nim-lang/Nim
11:44:43*nairobi quit (Ping timeout: 252 seconds)
11:44:54*nairobi_ joined #nim
11:46:08*nairobi_ quit (Read error: Connection reset by peer)
11:48:15*nairobi_ joined #nim
12:05:48opiArrrr: naa, I'm always on IRC, so it's not a problem. :)
12:06:18*dddddd quit (Ping timeout: 276 seconds)
12:07:56*dddddd joined #nim
12:09:09*nairobi joined #nim
12:10:02*nairobi_ quit (Read error: Connection reset by peer)
12:11:54*nairobi_ joined #nim
12:14:45*nairobi quit (Ping timeout: 276 seconds)
12:24:59*nairobi_ quit (Remote host closed the connection)
12:30:46*Arrrr quit (Quit: WeeChat 1.5)
12:31:45*nairobi joined #nim
12:48:46*girvo joined #nim
12:53:03*girvo quit (Ping timeout: 240 seconds)
13:04:31*dddddd quit (Ping timeout: 244 seconds)
13:05:23*nairobi quit (Remote host closed the connection)
13:11:34*waleee joined #nim
13:12:53*xet7 joined #nim
13:36:29Araqhohlerde: Delphi 5 and 6 until it kept producing too many internal errors, switched to FPC then
13:36:51Araqat that point bootstrapping wasn't far away though
13:38:18hohlerdecool, thx araq
13:44:28*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
13:44:57*waleee quit (Quit: leaving)
13:56:45coffeepotany reason why jester would take >20seconds to respond to a url?
13:57:15flyxcoffeepot: infinite loop?
13:58:46coffeepoti dunno, i'm just doing routes: with a couple of 'get's then runforever()
13:59:03flyxwell then I'd guess you're stuck somewhere in the network stack
13:59:24coffeepot:( I don't have any control over that afaik
13:59:49flyxbest thing to do is to make sure the request actually arrives at jester
14:00:28coffeepotit arrives, I echo when I get it, but it takes ages, sometimes over 40s wth? This is me entering a url on my machine and the server running locally too
14:00:57coffeepotoften it just never arrives at jester tho :(
14:01:47flyxthat does indeed sound like a network problem
14:01:48coffeepoti'm just sending the same url each time, sometimes takes 10s (still crazy slow), but then it just sits there waiting for jester
14:01:59coffeepotbut on localhost?
14:02:21coffeepotwill try it on another machine
14:03:51flyxyou can try curl with --connect-timeout to check whether the time passes before or after connecting to the jester server
14:05:15coffeepotunfortunately I don't have curl as windows
14:05:53coffeepottried it on another machine and the bindaddr failed due to access rights (despite running elevated). Odd
14:06:09flyxwget also has a --connect-timeout
14:06:28flyxand I am sure that this thing in the PowerShell does have one, too
14:07:49flyxwget even has a --dns-timeout. this is for checking whether your PC tries to resolve localhost via a DNS server (which really should not happen)
14:11:46coffeepotokay, i'll try to obtain one of these things. I wish ppl would supply binaries for windows sometimes, I already have enough build tools to set up without having to install more to compile OS software tools :/
14:12:52coffeepotO/S is probably easier to compile on linux, on windows ppl seem to require different versions of vc++
14:14:57flyxI just use cygwin on Windows. babun is a pretty simple distribution of it
14:15:25flyxit has a gcc so that vc++ is no longer a problem, and provides binaries of most common things
14:16:12flyxwget is also installable with chocolatey
14:16:26flyxso I do not see how there are no binaries supplied
14:16:26coffeepotI'm getting to the point where I might go that way tbh, will probably switch to linux for my home computer sooner or later. Work though I'm gonna be on windows for the forseeable future
14:17:26*PMunch joined #nim
14:17:37coffeepotthe problem I encounter is that I want to install a utility, then that requires a particular version of vc++, then some other framework, which I also have to compile, then some dll I also have to compile, ends up being a total PITA
14:18:16coffeepottried to compile glut the other day.... pfffftt what a hassle
14:19:11coffeepoti can understand why on linux u just go with the source code - not least because distros differ. On windows pretty much one 'core' for the thing and it doesn't automatically fetch dependancies
14:19:41coffeepotnot heard of chocolatey tho, will check it out
14:20:35*beatmox quit (*.net *.split)
14:20:54*nairobi joined #nim
14:21:10*brson joined #nim
14:21:49*pregressive joined #nim
14:22:01*pregressive quit (Remote host closed the connection)
14:22:53*pregressive joined #nim
14:23:42coffeepotah it wasn't glut, it was some other sdl2 thing - it all merges into one after a while
14:23:46*nairobi_ joined #nim
14:25:09*nairobi__ joined #nim
14:25:37*nairobi quit (Ping timeout: 250 seconds)
14:27:09FromGitter<BontaVlad> has anybody used the termbox wrapper lately? I'm unsuccessful at printing characters on the screen and was wondering if it is my code or something deeper.
14:28:13*nairobi_ quit (Ping timeout: 250 seconds)
14:31:13flyxmost Linux distributions do not fix DLL hell. it just happens that software written for Linux usually is written with backwards compatibility in mind. the only distribution that actually fixes it is NixOS afaik
14:33:25*nairobi__ quit (Ping timeout: 250 seconds)
14:34:11coffeepot"This package is type curl executable You will get a pre-built 'curl' binary from this link" (is just source code). Okay, will try the other link (broken zip file)
14:34:14*coffeepot grooaaan
14:34:52coffeepoti think linux has the advantage that most of the generic compilers are basically already set up, as the OS often seems to use them from the start
14:35:07flyxyou can use docker like everyone does
14:35:50flyxI'll be afk for the day.
14:36:04coffeepotthat's the solution? Buy a huge product so I can compile an O/S tool? :-/
14:36:22coffeepotthanks for the pointers though, will see if I can work out where the delay is occuring
14:36:47*Kaini quit (Remote host closed the connection)
14:36:52flyxnothing to buy there, it's open source. and I do not really like it personally, but it seems to be an easy fix for this kind of problems
14:37:11flyxespecially since it does not need VirtualBox on Windows anymore
14:37:33*Kaini joined #nim
14:37:40coffeepotoh? The website seems to indicate you have to purchase https://www.docker.com/pricing Or is that just for 'support'
14:38:19*nairobi joined #nim
14:38:28flyxthat's for support
14:38:36flyxwell as I said, I'll be off
14:38:39coffeepotcool, fair enough
14:38:45coffeepotwell cheers for the help flyx :)
14:39:08*coffeepot browses docker repo
14:39:43*coffeepot taps head, "Interesting..."
14:42:16*beatmox joined #nim
14:46:43*LeNsTR is now known as lenstr
14:49:33*girvo joined #nim
14:54:22*girvo quit (Ping timeout: 265 seconds)
15:04:51coffeepotwell, failed to install wget and curl due to dependencies (curl got furthest before requiring another dll that wasn't included), and not going to install an entire VM for linux just so I can use the network tools... running jester client on another machine fails with "attempt was made to access a socket in a way forbidden by its access permissions"
15:04:51coffeepot in bindAddr routine (this was due to clashing ports with another http server, port change fixed it)
15:05:24coffeepothowever, now it's running on another machine it responds quickly, so it's gotta be something weird with my setup rather than an issue with jester
15:07:04*Kaini quit (Ping timeout: 264 seconds)
15:13:02coffeepota different port works on my machine too, so probably something interfering with port 80! Good news :)
15:13:10*gokr quit (Ping timeout: 244 seconds)
15:13:41*Kaini joined #nim
15:14:16*desophos joined #nim
15:29:13*Jesin joined #nim
15:29:19krux02coffeepot: isn't curl included in the Ubuntu shell for Windows?
15:29:41coffeepotthere's an ubuntu shell for windows?!
15:30:06coffeepotoh, windows 10 tho?
15:30:16krux02yes
15:30:28coffeepoti'm on 7 still :/
15:30:28krux02but it is included
15:30:42krux02yea I am on Arch Linux
15:31:37krux02I don't Windows anymore since Windows 7
15:31:46*helloNim joined #nim
15:32:05*nairobi_ joined #nim
15:32:14coffeepotwindows 7 will my last edition on my home pc unless they bring out something that isn't rotten in the future
15:32:26*pie__ quit (Changing host)
15:32:26*pie__ joined #nim
15:32:34*nairobi quit (Ping timeout: 260 seconds)
15:32:41*helloNim quit (Client Quit)
15:32:46coffeepotthinking of switching to linux at home tbh, but... same old story, i'm a gamer. Could duel boot or something
15:33:18krux02I also like to play games, but honestly there are great games for Linux, too
15:33:38krux02just not from Ubisoft or EA
15:33:51*potato_ joined #nim
15:34:02*nairobi joined #nim
15:34:07*potato_ quit (Client Quit)
15:34:12krux02go to GOG.com and you don't even need to have the spying software called steam
15:34:12chemist69+1 for Arch Linux \o
15:34:42coffeepotI have noticed more and more get released for linux. Also, hoping to release some of my own games so would support linux & windows easier
15:34:50elroodduel boot is a beautiful typo ;) good luck with waiting for anything unrotten after win10, http://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows
15:34:51krux02humble bundle used to be a great source, too, but then they got corrupted and allowed DRM games
15:35:37elroodwget and curl should be really easy to get precompiled for windows, though. there are gnuwin, unxutils, probably git for windows includes them as well..
15:35:43krux02If you think windows 10 is rotton because of it's spying features, you should become like richard stallman
15:35:52coffeepotyeah windows 10... i just... can't stomach pushing adverts in the OS, even if you can turn them off
15:36:18krux02He didn't want this "rotten" he calls it "proprietary" software and developed GNU
15:36:25coffeepotalso windows updates you can't stop, just... it's not my computer any more, you know?
15:36:35*nairobi_ quit (Ping timeout: 244 seconds)
15:38:38*nairobi quit (Ping timeout: 244 seconds)
15:39:04krux02last night I was listening to Richard Stallman talk. Even though I think he is a bit over the top when it comes to Free softwar rights, he is talking exactly about the problem that Proprietary softwar is not software you are controlling it is software from the companies making the software to control you. And you have to think how many inconveniences you can affort to buy your freedom back.
15:40:40*nairobi joined #nim
15:41:12coffeepotyeah I kinda feel like Stallman is over the top, and yet ultimately probably right. I don't mind selling a bit of my info, but I draw the line when MS decided they wanted to become an info-broker like google. Just having that mentality for an OS developer is a bad path
15:41:17coffeepotimo ofc
15:41:48ThisIsZenifiedwhat softwar
15:42:02kierwhat's the difference between localError and globalError in the compiler?
15:43:20*Demos_ joined #nim
15:43:21krux02worst are probably Windows, Google, Facebook,
15:43:38krux02Amazon, too.
15:43:52krux02Forgot to mention Apple.
15:43:52coffeepotamazon is scary sometimes. And yet, so convenient!
15:44:19coffeepotit irks me that amazon don't provide ssl tho
15:44:19krux02Yes it's convenient, exactly richard stallmans words. But is it worth giving your freedom for convenience?
15:44:21*Demos__ joined #nim
15:44:43krux02Other people gave their lives for Freedom, and we aren't even willing to give convenience for freedom.
15:44:57coffeepotit depends how much freedom you give up i suppose. I don't think it's binary all or no freedom
15:45:06krux02Freedom must little worth to us is we give it up so easily.
15:46:21krux02I think if a product analyzes my working habits, to improve the software and fix it for productivity, and asks me nicely if they may do so. I am ok with that, but I am not ok if this Data is used to control me or against my will.
15:46:51elroodit's a tradeoff, everybody has to decide for himself where to draw the line. however, this is getting less and less nim-related, perhaps philosophy discussions should be taken to #nim-offtopic, guys..? ;)
15:47:06krux02yea probably
15:47:28Araqkier: globalError raises, localError doesn't
15:48:01*Demos_ quit (Ping timeout: 265 seconds)
15:49:34kierAraq: what's the impact of raising? presumably it doesn't always abort
15:54:10FromGitter<gokr> @Araq Been looking at VSCodes debugger protocol, interesting stuff. And the Nim extension seems very neat
15:55:10*foocraft quit (Quit: Leaving)
15:55:16coffeepotI would be ecstatic to have integrated debugging in vscode
15:55:27Araqkier: impact? well it unrolls the stack until the next 'try' handler
15:55:40Araqin general use localError unless you can't.
15:56:14kierfair enough
16:04:11cheatfateAraq, is it possible to check if string inside of object initialized?
16:04:22krux02gokr: I once tried to write some debugger support for NIM/gdb, but I had no chance I just didn't understand anything from gdb
16:04:29*nairobi quit (Remote host closed the connection)
16:04:37krux02everything seemed so redundant and overly complicated
16:05:08krux02I asked in the qtcreator channel, and apparently the guy I talked to there implemented support for the Nim seq type from within qtcreator
16:05:24krux02so if you have the right build you should be able to debug in code in qt creator
16:05:38Araqcheatfate: isNil ?
16:06:22cheatfatekrux02, its not very complex, you need https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html
16:06:40cheatfateAraq, thanks, i will check it
16:06:56krux02I invested a lot of time in it. It all was too weired for me to understand
16:07:09krux02implementing a simple printer function, no chance
16:07:15cheatfatekrux02, some years ago i have tried to make graphical debugger with python and gtk3
16:07:17krux02not even speaking of collections
16:07:23cheatfateand gtk3 bugs drop me from the way
16:07:25krux02I don't speak python
16:07:29*nairobi joined #nim
16:08:06*nairobi quit (Read error: Connection reset by peer)
16:08:59krux02I didn't see anything in that language that made me think, hmm this is really interesting, it would be worth learning the language. And not having static type information always turned me off.
16:10:21coffeepotIn my search for a new language I 'found' python, loved it, then became disappointed with lack of static types, then depressed at the speed of it. Then I discovered Nim :)
16:10:34krux02Araq: I have a question that I questioned myself already since the beginning, why does the seq type have a nil state? I saw that it behaves almost identical to the c++ std::vector type, except that it has this nil state that the c++ type doesn't have nor need.
16:11:09Araqptr vs object representation
16:11:38AraqC++: struct { int length; T* stuff; }
16:12:14coffeepotkrux02 I've often wondered the same for string. With seq it makes sense to have nil seqs sometimes, eg; seq[seq[type]] or with seq as part of an object etc
16:12:21AraqNim: *struct { int length; int cap; T[1] stuff; }
16:13:29krux02coffeepot, if you would like to have non owning references, you can still always have ptr seq.
16:14:40coffeepotkrux02 good point, but wouldn't it be awkward to resize them if they weren't ref?
16:15:57krux02coffeepot I don't know what you mean
16:17:29coffeepotwell I mean aren't non-ref objects normally on the stack? I'd assume it would be awkward to resize stack vars but i don't really know tbh XD
16:19:43*Andris_zbx quit (Remote host closed the connection)
16:20:15coffeepotright time for me to be gone. Have a good evening/morning/day everyone! :D
16:20:47*coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
16:24:48krux02Araq: I think I found some undefined behavior though: http://pastebin.com/dYV2fmuk
16:26:57krux02In c++ I would have arg as cont vector<int>&, and therefore it would always be the same as s. arg.size() and s.size() could not possibly be different
16:30:26krux02But I have to say, that could is just bad and should not be part of any codebase. But that doesn't mean it couldn't occur.
16:30:54krux02especially greenhorns are pretty talented in ending up in such code structures.
16:38:37*nsf quit (Quit: WeeChat 1.5)
16:40:48*nairobi joined #nim
16:49:24*yglukhov quit (Ping timeout: 265 seconds)
16:50:31*girvo joined #nim
16:54:57*girvo quit (Ping timeout: 244 seconds)
17:01:42*namnguyen quit (Ping timeout: 258 seconds)
17:08:07*nairobi quit (Ping timeout: 250 seconds)
17:12:55*namnguyen joined #nim
17:13:39*chemist69 quit (Ping timeout: 250 seconds)
17:15:57*chemist69 joined #nim
17:18:49krux02In macro: result = newLit(true) is ok, but return newLit(true) is a compile error
17:19:46*nairobi joined #nim
17:31:01*nairobi quit (Read error: Connection reset by peer)
17:31:19*nairobi joined #nim
17:40:16*yglukhov joined #nim
17:44:34*yglukhov quit (Ping timeout: 255 seconds)
17:49:56*yglukhov joined #nim
17:57:15*testt quit (Quit: Leaving)
17:57:32*nairobi quit (Remote host closed the connection)
18:04:21*Demos__ quit (Read error: Connection reset by peer)
18:09:10*Demos__ joined #nim
18:30:27*dddddd joined #nim
18:31:58*Demos__ quit (Read error: Connection reset by peer)
18:32:03*Demos joined #nim
18:37:34*Demos quit (Read error: Connection reset by peer)
18:37:40*Demos_ joined #nim
18:42:30*fredrik92 joined #nim
18:45:22*Demon_Fox joined #nim
18:51:13*girvo joined #nim
18:56:27*girvo quit (Ping timeout: 276 seconds)
18:59:37*Matthias247 joined #nim
19:16:25*Snircle joined #nim
19:21:08*aziz joined #nim
19:21:17*aziz quit (Remote host closed the connection)
19:30:53*csoriano_ joined #nim
19:50:59*Demos_ quit (Ping timeout: 260 seconds)
20:10:25krux02is there a way to get a temporary of some type to use in a type expression: something like type( decalval(MyType).someAttribute) ?
20:20:15*kulelu88 joined #nim
20:23:41FromGitter<gokr> @krux02 I have debugged just fine from qtcreator but... Inspecting data is the problem. But the VSCode approach seems quite nice and straight forward. I am contemplating to make Spry support it.
20:24:44ldleworkwhat's Spry
20:25:06FromGitter<gokr> Sprylang.org (called Ni before)
20:27:55FromGitter<gokr> But I need to reify threads of execution first - so that they can be controlled from within Spry. Like in Smalltalk.
20:28:32FromGitter<gokr> I wonder btw about Araq's ambitions on the Actor shared-nothing model etc.
20:28:53FromGitter<gokr> Elixir is stealing the show there.
20:32:43krux02If I want actors, I would do Scala with Akka
20:33:18krux02But even though I implemented a lot of scala code I never needed actors
20:39:04krux02It's probably because I don't write Internet stuff
20:39:09*xet7 quit (Remote host closed the connection)
20:41:04*xet7 joined #nim
20:47:06*nairobi joined #nim
20:50:02*nairobi_ joined #nim
20:51:19BlaXpiritkulelu88, so you left without a goodbye? :|
20:51:44*nairobi quit (Read error: Connection reset by peer)
20:51:44*nsf joined #nim
20:52:03kulelu88BlaXpirit: sorry mate, I was exhausted and finishing up my other project. Did they say anything on that channel? let me come to critter to discuss
20:52:13*girvo joined #nim
20:56:55*girvo quit (Ping timeout: 252 seconds)
21:03:28krux02I am doing fancy macro magic, and I wonder if anybody can help
21:03:42krux02I almost doubt that a lot of people have my use case
21:03:51krux02I try to write a macro that returns a type
21:05:02krux02so that I can write something like this: proc foobar(x : MyType): mymacro(MyType, someproperty) = ...
21:05:14krux02the problem is that in mymacro, I can not return an symbol
21:05:29krux02the compiler complains that I have to return typedesc
21:07:11*gokr joined #nim
21:08:40krux02It's either "value of type typedesc has to be discarded"
21:08:57*dddddd quit (Ping timeout: 250 seconds)
21:09:12Araqmake mymacro return untyped, perhaps
21:09:49krux02ok that works
21:10:00krux02a bit random to me, but it works thank you
21:12:25*nairobi_ quit (Ping timeout: 244 seconds)
21:25:06*nairobi joined #nim
21:25:58*nairobi_ joined #nim
21:29:49*nairobi quit (Ping timeout: 244 seconds)
21:32:41krux02what is the difference in typed and untyped in the result type of a macro?
21:33:06*nairobi_ quit (Ping timeout: 244 seconds)
21:34:14*nairobi joined #nim
21:42:38*nairobi quit (Read error: Connection reset by peer)
21:44:52*gokr quit (Ping timeout: 255 seconds)
21:52:35*nairobi joined #nim
21:56:12*nairobi_ joined #nim
21:56:13*nairobi quit (Read error: Connection reset by peer)
22:15:25*brechtm_ joined #nim
22:15:27*brechtm quit (Read error: Connection reset by peer)
22:21:20*nairobi joined #nim
22:22:05*fredrik92 quit (Quit: Leaving.)
22:22:33*fredrik92 joined #nim
22:22:49*nairobi_ quit (Ping timeout: 265 seconds)
22:32:40*elrood quit (Remote host closed the connection)
22:41:52*GangstaCat quit (Quit: Leaving)
22:43:09*nairobi quit (Read error: Connection reset by peer)
22:45:13*csoriano_ quit (Quit: csoriano_)
22:50:13*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:50:41*PMunch quit (Quit: leaving)
22:52:57*girvo joined #nim
22:54:43*fredrik92 quit (Quit: Leaving.)
22:58:15*girvo quit (Ping timeout: 276 seconds)
23:02:05*Trustable quit (Remote host closed the connection)
23:04:51*bjz joined #nim
23:14:12*yglukhov quit (Remote host closed the connection)
23:17:36*yglukhov joined #nim
23:19:03*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:21:59*yglukhov quit (Ping timeout: 250 seconds)
23:24:32*Demos joined #nim
23:28:15*Matthias247 quit (Read error: Connection reset by peer)
23:34:53*Demos quit (Read error: Connection reset by peer)
23:47:35jo_Hmm. Do I need different arguments when I'm using a static library for {. cdecl .} ?
23:48:18jo_I'm using proc blahblah {.cdecl, importc: "blah_blah", dynlib: "my_library.a".}
23:48:29jo_NOTE: .a is NOT a dynlib.
23:50:44*brechtm_ quit (Read error: Connection reset by peer)
23:50:50*brechtm joined #nim