<< 19-04-2017 >>

00:10:32*arnetheduck joined #nim
00:35:12*rauss joined #nim
00:55:17*demi- quit (Ping timeout: 252 seconds)
00:55:36*demi- joined #nim
01:02:06*sdw joined #nim
01:22:54*vlad1777d quit (Remote host closed the connection)
01:25:37*zachcarter_ joined #nim
01:40:38*zachcarter joined #nim
01:42:18*zachcarter_ quit (Ping timeout: 258 seconds)
01:44:33*zachcarter_ joined #nim
01:44:54*zachcarter quit (Ping timeout: 240 seconds)
01:44:54*zachcarter_ is now known as zachcarter
01:46:50*Jesin quit (Quit: Leaving)
01:50:16*zachcarter_ joined #nim
01:50:17*chemist69 quit (Ping timeout: 252 seconds)
01:51:36*zachcarter quit (Ping timeout: 260 seconds)
01:51:37*zachcarter_ is now known as zachcarter
01:52:35*tigerfinch quit (Ping timeout: 255 seconds)
02:04:12*chemist69 joined #nim
02:10:18*tigerfinch joined #nim
02:16:07*tigerfinch quit (Ping timeout: 240 seconds)
02:16:56*zachcarter quit (Quit: zachcarter)
02:21:24*tigerfinch joined #nim
02:24:32tigerfinchHey everyone! I was wondering if anyone can tell me - is there a way to pass a varargs of procedural types to a proc?
02:25:34FromGitter<Varriount> tigerfinch: Yes. You just need to make sure the procedures have the same calling convention.
02:30:11tigerfinchFromGitter: Hmm - so I hoped that was the case! I have an example which I can't get to work - mind seeing if anything jumps out at you? I had a proc working *without* the varargs, so I thought I had the calling convention sorted, but in the varargs case it's complaining.... https://gist.github.com/anthonyfinch/48e7bddae9408f651fdf58a9d5003872
02:30:12FromGittertigerfinch, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim
02:31:53FromGitter<anthonyfinch> Hi - this was me^ came here for convenience :)
02:32:03FromGitter<anthonyfinch> the compiler error is below the fold on that gist
02:34:58*Jesin joined #nim
02:46:08*chemist69 quit (Ping timeout: 255 seconds)
02:47:25FromGitter<anthonyfinch> It seems to just be the proc annotations that are differing?
02:50:50*chemist69 joined #nim
02:53:24FromGitter<Varriount> @anthonyfinch Sorry, was working
02:53:43FromGitter<anthonyfinch> That's quite alright :D
02:54:13*tigerfinch left #nim (#nim)
02:58:31FromGitter<Varriount> @anthonyfinch I can't get it to work at the moment. I have my hands full with something else.
03:03:51*Calinou quit (Remote host closed the connection)
03:06:16FromGitter<anthonyfinch> That's ok!
03:12:55FromGitter<Varriount> @anthonyfinch I know it should work, and it's probably some small type incompatibility.
03:13:13*chemist69 quit (Ping timeout: 260 seconds)
03:24:45FromGitter<anthonyfinch> @Varriount thanks - well I'm glad to know it should be possible :) I'll keep fiddling with the types or maybe someone else will have a suggestion
03:39:31*rauss quit (Quit: WeeChat 1.7)
03:40:27*chemist69 joined #nim
04:33:20*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
05:03:30*kier joined #nim
06:02:54adeohluwafavourite parts of the new website https://nim-lang.org/features.html, featured frameworks, learn nim today description...
06:03:43adeohluwagreat work, messages are clearer & more visual
06:07:32bbl__New website on mobile +1
06:15:41*gangstacat quit (Quit: Ĝis!)
06:19:26*yglukhov joined #nim
06:21:57*gangstacat joined #nim
06:24:01*yglukhov quit (Ping timeout: 260 seconds)
06:45:55*nsf joined #nim
07:00:39FromGitter<TiberiumPY> Yay new website
07:00:40FromGitter<TiberiumPY> Cool
07:00:45FromGitter<TiberiumPY> Works good on mobile
07:00:52FromGitter<TiberiumPY> Chrome + android
07:02:53ftsfmuch nicer!
07:03:13*gokr joined #nim
07:12:38*TheLemonMan joined #nim
07:20:35*xet7 joined #nim
07:31:08*Andris_zbx joined #nim
07:41:44*Arrrr joined #nim
07:41:44*Arrrr quit (Changing host)
07:41:44*Arrrr joined #nim
07:44:36FromGitter<andreaferretti> I think the old website had a list of external blog posts that I cannot find anymore
07:44:54FromGitter<andreaferretti> Moreover, I think the first thing to mention in documentation should be the tutorial
07:45:17FromGitter<andreaferretti> Which is not linked anywhere as far as I can tell
07:45:46FromGitter<andreaferretti> Finally, I think that in community section, there should be a place for http://nimble-explorer.com/ and https://glot.io/new/nim
07:46:02FromGitter<andreaferretti> Other than these comments: great!
07:46:06Araqall very good points :-)
07:46:21FromGitter<andreaferretti> I am really happy to see a revamped website :-)
07:48:27ftsfhmm you're also using https (good) but loading gravatars over http which results in secure fail on chrome
07:49:19ArrrrSpeaking of which, https://nim-lang.org/docs/lib.html always freezes my browser because of the nimble packages retrieving, but i never use them.
07:53:10ArrrrMmm glot.io is finally using nim 0.16
08:01:52*yglukhov joined #nim
08:02:32euantorftsf: If you're talking about on the forum, that's been patched but obviously the old version is still running: https://github.com/nim-lang/nimforum/commit/720f38b3d45064cd8b0fd5e1e6cf6295ce600709
08:03:00euantorI echo the sentiments of everybody else: The new website does look great, it's a vast improvement - great work to all those involved!
08:04:21euantorA minor nitpick is that on this page in the very first code sample I'd add a blank line between the improt and type declaration: https://nim-lang.org/features.html
08:06:10*Arrrr quit (Ping timeout: 255 seconds)
08:09:13*Matthias247 joined #nim
08:10:22ftsfeuantor, no, the main site
08:11:30euantorAh, should be an easy patch then. I'll try to submit a PR this morning for that
08:18:37euantorPR created
08:20:35*bjz joined #nim
08:37:50gokrAraq: For some odd reason I now don't remember I started peeking at the hash function for string. It seems to be Jenkins one-at-a-time.
08:38:29gokrAnd... AFAICT there have been some new algorithms since then, found this blog article that was interesting to read: http://blog.reverberate.org/2012/01/state-of-hash-functions-2012.html
08:43:53Araqgokr: I know, thanks. if I touch hash tables again, I'll likely also copy Python's dict implementation that keeps insertion order.
08:44:41gokroki
08:44:48AraqI now consider this arbitrary iteration order a thing of the "dark ages of computing" ;-)
08:46:23*Calinou joined #nim
08:46:36gokrAlso interesting link, scroll down to table: https://github.com/markokr/pghashlib
08:49:50Calinouhmm, I see the new site has been deployed, nice
08:50:27ftsfone thing for the site that would be good, more examples on the front page!
08:50:40ftsfmaybe just a button to show another random example
08:50:45Calinouthere could be a carousel for the examples on the frontpage, but that requires JavaScript
08:50:52Calinou(CSS-only carousels do exist, but you can't interact with them at all)
08:52:21ftsfvery anti js?
08:52:48ftsfi think it's fine as long as it's not required
08:54:36Calinouftsf: yeah, if we fallback gracefully it should be possible
08:54:47Calinouthe problem is that fallbacks can sometimes cause issues to users that do enable JavaScript
08:54:56Calinoumostly because the browser thinks you have JavaScript off during loading
08:55:04Calinouso it flickers in and out
08:55:26FromGitter<Bennyelg> WordCount program banchmark for file size = 736K ⏎ Python: 0.1 seconds. ⏎ Nim: 16 seconds :/
08:56:16ftsf-d:release ?
08:56:53FromGitter<Bennyelg> Never tried -d:release
08:56:56FromGitter<Bennyelg> what is this mean
08:57:10ftsfyou use that when you want a release build instead of a debug build
08:57:26ftsffor benchmarking/performance you'd want to use a release build
08:57:49zielmicha_e.g. compile with "nim c -d:release wordcount.nim"
08:57:51FromGitter<Bennyelg> still 15 seconds
08:57:55FromGitter<Bennyelg> aa
08:57:56FromGitter<Bennyelg> ok
08:59:08FromGitter<Bennyelg> 3 seconds now
08:59:15FromGitter<Bennyelg> but still Donnu how it's possible
08:59:30FromGitter<andreaferretti> maybe post it here
08:59:38FromGitter<Bennyelg> Im pretty sure My code is shitty
08:59:47ftsfin a gist or something ;)
08:59:47FromGitter<Bennyelg> but I thought I will break it at the first round.
09:00:02FromGitter<andreaferretti> or just in gitter
09:02:57FromGitter<Bennyelg> no need.~ python code ⏎ Alert shitty code head. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58f727c33e27cac331a1b702]
09:03:53FromGitter<andreaferretti> and the nin one?
09:07:42FromGitter<Bennyelg> just a sec
09:09:10FromGitter<Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58f729398fcce56b20170080]
09:09:39FromGitter<Bennyelg> the implementation is bad
09:09:43FromGitter<Bennyelg> but take a look
09:10:06ftsfsupposed to return a count of each word in the document?
09:12:16ldleworkwoot https://www.youtube.com/watch?v=09BQklZnXKI
09:12:56FromGitter<andreaferretti> why is the Nim implementation so much more complex than the python one?
09:13:05FromGitter<andreaferretti> they don't seem very comparable
09:13:22FromGitter<andreaferretti> for instance, you are calling sort in a while loop
09:13:43FromGitter<andreaferretti> and deleting from the table each time, which is O(n)
09:14:37FromGitter<andreaferretti> I think the simplest thing would be to just accumulate counts in a table in the most straightforward way
09:14:49FromGitter<andreaferretti> and finally create an ordered table out of it
09:15:21*byte512 quit (Ping timeout: 260 seconds)
09:22:12ftsfthere's also CountTable, not sure how useful that is
09:23:42FromGitter<andreaferretti> also, read the file line by line instead of a single string
09:27:31Calinoudom96: on the website, https://nim-lang.org/assets/img/nim_in_action_cover.png should be reduced in size, it's huge, it's 1.5 MB
09:35:33*krux02 joined #nim
09:35:57*Vladar joined #nim
09:37:14*krux02 quit (Remote host closed the connection)
09:44:59euantorCalinou: Regarding carousels in pure CSS< have you seen this? https://picturepan2.github.io/spectre/experimentals.html#carousels
09:45:17*byte512 joined #nim
09:45:20euantorIt is pure CSS and has interaction, but IDK if it works with anything other than pictures
09:45:31Calinoueuantor: yeah, it might not work on non-image content
09:45:32*bjz quit (Ping timeout: 240 seconds)
09:45:36Calinoualso, I'd like touch events to work (for mobile)
09:45:44Calinouthis one seems to work only by clicking buttons at the bottom
09:45:50Calinou(touch events can be good on desktop too)
09:45:52euantorAh, I haven't tried that on mobile
09:45:53*bjz_ joined #nim
09:46:02euantorIt does have arrows at the sides that work
09:47:05Calinouaccessibility is often a concern with CSS-only things, too
09:49:21*krux02 joined #nim
09:50:50*krux02 quit (Remote host closed the connection)
09:51:02*krux02 joined #nim
09:51:09*krux02 quit (Remote host closed the connection)
09:51:22*krux02 joined #nim
09:52:44*krux02 quit (Remote host closed the connection)
09:52:55*krux02 joined #nim
09:53:11*krux02 quit (Remote host closed the connection)
09:53:22*krux02 joined #nim
10:17:43sdwlink to sponsor "Xored Software, Inc" is broken on the website
10:28:44*Vladar quit (Quit: Leaving)
10:50:01*zachcarter joined #nim
10:52:05FromGitter<Bennyelg> @andreaferretti how do you read linebyline its not what I do now?
11:02:25*Snircle joined #nim
11:05:28zachcarternew website is awesome dom96 / araq
11:05:51Calinouzachcarter: I made the design too :P
11:05:58zachcarterooo Calinou: great job!
11:06:02zachcartervery clean
11:06:19ftsf\o/
11:06:25zachcarterthe featured projects section was a nice surprise last night too :P
11:07:40FromGitter<Bennyelg> ```code paste, see link``` ⏎ ⏎ bad? [https://gitter.im/nim-lang/Nim?at=58f744ffa0e48562421b8643]
11:07:58CalinouI just tried the Snake game in features page :P
11:20:02*zachcarter quit (Read error: Connection reset by peer)
11:20:21*zachcarter joined #nim
11:21:48FromGitter<stisa> @Bennyelg define bad? You are still reading the file all at once with readFile, but you are not considering the time it takes to do so. Outputs 0.198 on a 6.2MB file for me
11:24:12FromGitter<Bennyelg> wow thats far worse for me. (1.7sec)
11:24:22FromGitter<Bennyelg> how do I read "stream" way line by line
11:26:03FromGitter<stisa> @Bennyelg I think it's https://nim-lang.org/docs/streams.html#newFileStream,string,FileMode and then use ``myfilestream.readLine``
11:26:15*Arrrr joined #nim
11:26:15*Arrrr quit (Changing host)
11:26:15*Arrrr joined #nim
11:27:14ArrrrI guess iterators cannot yield static values
11:28:09krux02I think they can yield whatever you want
11:28:32krux02imho static values are just not there anymore at runtime
11:28:39krux02so you should assign them to constants
11:28:56ArrrrI did that, yet https://glot.io/snippets/ep2zkzeglv
11:30:42krux02I don't even know what you mean to return a static value
11:31:27krux02just remove the static around the return value, and it should work
11:32:20krux02http://ix.io/r85
11:32:21ArrrrIt complains about not being able to evaluate b at compile time
11:32:49krux02it doesn't really make sense to have one return value as static and the other not not static
11:33:15ArrrrIt makes if the iterator yields values from more than one source, for example
11:34:20krux02I disagree
11:34:44*Matthias247 quit (Read error: Connection reset by peer)
11:35:04krux02either you have ass sources known at compile time, then you can execute the iterator at compile time, or you don't but then it just iterates at runtime
11:35:31ArrrrYou have two seqs which requires similar operations, but in one of the two you need a different thing
11:35:58krux02well I don't get your problem
11:37:35krux02you cannot say, haft of a function get's evaluated at compile time, the other one at runtime
11:37:50krux02you can split the iterator in two iterators
11:38:10krux02one only returs you the static value and the other one returns the runtime value
11:38:17Arrrrconsider procs where an arg can be of type int | string for example. To the int you want to transform it to string and reuse the rest of the proc. But in practice two procs are generated
11:38:35krux02then you can execute the iterater that returns the static value at compile time, you just don't call it static
11:38:44ArrrrThat's right, the point would be that i don't have to duplicate the iterator.
11:39:35*zachcarter quit (Quit: zachcarter)
11:39:38krux02well I guess you have to
11:40:17ArrrrThat's seems to be the case. And i guess nim would not know how to duplicate it.
11:40:56krux02well for your example you could also consider converter procs
11:41:06krux02then the arguments gats converted before it is applied to the function
11:41:29krux02it wouldn't recomment to write a converter int->string
11:41:57krux02but when you have other non standard types, it might me a good choice
11:44:27ArrrrYes, and probably it is right that this is not the best way to handle the issue. I'll think about it.
11:50:48FromGitter<Bennyelg> @stisa The same result: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58f74f1bf22385553d566cba]
11:56:00FromGitter<stisa> mmh, I tried running your python version but I get an error, what difference in time do you get?
11:56:33*nsf quit (Quit: WeeChat 1.7)
11:56:49FromGitter<Bennyelg> 1) 5 seconds
11:59:35FromGitter<stisa> Looking at python code, why are you calling time after calling wordcount? Wouldn't that only count the time needed to create the OrderedDict?
12:01:15chemist69Bennyelg: BTW, looping over a file line by line in Nim is just: `for line in "filename".lines:` It doesn't get any simpler.
12:06:42FromGitter<mratsim> There is no “count words in a file” task on Rosetta Code
12:06:48FromGitter<mratsim> :/
12:08:41FromGitter<Bennyelg> @silvio correct i CHANGED IT
12:09:03FromGitter<Bennyelg> @stisa still it takes 0.221739053726 sec
12:09:10FromGitter<Bennyelg> nim version 1.7 seconds
12:11:58euantorBennyelg: what is it you're trying to achieve? Count the number of words in a file?
12:13:07FromGitter<mratsim> benchmark that I think and comparing Nim vs Python
12:14:00FromGitter<andreaferretti> @Bennyelg https://nim-lang.org/docs/system.html#lines.i,string
12:14:46FromGitter<stisa> ```code paste, see link``` ⏎ ⏎ This gives me 0.23 in nim, 0.233 in python [https://gitter.im/nim-lang/Nim?at=58f754b9bdf4acc11273ec96]
12:16:48FromGitter<andreaferretti> I think it could be even faster by using a normal table
12:16:58FromGitter<andreaferretti> and then copying the result into an ordered table at the end
12:17:19chemist69I guess the use of `re` made the original version slow.
12:17:47euantoryes, and creating a new regex every loop iteration would hurt too
12:17:50FromGitter<mratsim> I would just use `wc` :P
12:18:08*PMunch joined #nim
12:22:10ftsfmaybe CountTable and sort?
12:22:34ftsfmight not be faster but that's what it's designed for by the looks of it
12:28:09FromGitter<Bennyelg> Great now Its 100% more faster than python according to my test
12:30:29krux02more faster?
12:30:49FromGitter<Bennyelg> ya
12:31:11krux02how about "it needs now 50% of the time"
12:31:19*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
12:33:11krux02when you compare word counting, you should compare it to `wc' too
12:33:38ftsfkrux02, this is counting the number of times a word appears
12:33:47ftsfwc counts number of words
12:34:12krux02ok
12:34:12ftsfor can wc can do that too?
12:34:31*bjz joined #nim
12:35:15krux02no
12:52:21FromGitter<stisa> anyone tried building the forum recently? I get an error ```utils.nim(108, 144) template/generic instantiation from here ⏎ utils.nim(113, 28) Error: type mismatch: got (string, Port) ⏎ but expected one of: ⏎ proc newAsyncSmtp(useSsl = false; debug = false; sslContext = defaultSslContext): AsyncSmtp``` [https://gitter.im/nim-lang/Nim?at=58f75d88bdf4acc11274162d]
12:56:47euantorHaven't since March, no. WHich version of Nim are you on?
12:57:38FromGitter<stisa> built today from devel
12:58:14FromGitter<stisa> oh SMTP changed, you have to pass adress and port to `connect` rather than `newAsyncSmtp`
13:07:49euantorOh, yeah that would do it
13:10:00*Matthias247 joined #nim
13:12:35*vlad1777d joined #nim
13:16:23*krux02- joined #nim
13:16:23*krux02 quit (Disconnected by services)
13:16:26*krux02- is now known as krux02
13:16:38*krux02 quit (Disconnected by services)
13:16:38*krux02- joined #nim
13:16:41*krux02- is now known as krux02
13:16:41*krux02 is now known as 18WAAS0DX
13:16:47*krux02 joined #nim
13:20:23*krux02 quit (Remote host closed the connection)
13:33:41*chemist69 quit (Ping timeout: 255 seconds)
13:38:14*chemist69 joined #nim
13:46:21arnetheduckAraq, any thoughts on https://github.com/nim-lang/Nim/pull/5698?
13:48:38AraqI'm not a fan of reproducing C's include file partitioning
13:50:20Araqposix is really not that big and the interesting stuff is missing or broken
13:51:09yglukhovAraq: what do you whink of adding min/max functions for uints?
13:51:46Araqadd back min/max for generic T it was only my intention to disallow min(singleElement), max(singleElement)
13:52:14*ftsf quit (Quit: Leaving)
13:52:20yglukhovlike so: min/max[T](a, b: T): T
13:52:21yglukhov?
13:52:34*ftsf joined #nim
13:54:06arnetheduckit's not so much about posix as about offering the full c library.. posix comes out as crippled - it's too little because many things are system-specific and differ between platform (you can see that in posix itself where some parts are already in separate files, like termios, epoll), and too much, because something like windows supports large parts of the c standard (string.h with memcpy and friends etc) but calling that posix is.. confusing
13:55:30arnetheduckso what happens instead is that the lib spreads out those wrappers with subtle differences, like the one I just fixed where there time() is imported both with int and cint return types
13:55:42yglukhovAraq: why are min/max procs magic?
14:00:29*gokr quit (Ping timeout: 260 seconds)
14:02:12*yglukhov quit (Remote host closed the connection)
14:03:09*yglukhov joined #nim
14:04:10*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
14:12:08*yglukhov quit (Remote host closed the connection)
14:24:14*Tiberium joined #nim
14:24:29*yglukhov joined #nim
14:27:24*yglukhov quit (Remote host closed the connection)
14:32:31Araqyglukhov: yes
14:37:05*joshbapt1 quit (Ping timeout: 240 seconds)
14:38:43*joshbapt1 joined #nim
14:42:53FromGitter<grumblygibson> I'm guessing there were emails or forum posts at some point about deactivating users and I missed them. Any chance I could get my acct reactivated, or do I have to make a new username? user:grumbly
14:43:24FromGitter<grumblygibson> In other news, the new site looks great! Only thing I found I was looking for pretending to be a new user was the github link somewhere on the first screen/box.
14:43:44*yglukhov joined #nim
14:43:47*yglukhov quit (Remote host closed the connection)
14:44:34*yglukhov joined #nim
14:44:37*yglukhov quit (Remote host closed the connection)
14:44:54*yglukhov joined #nim
14:44:54*yglukhov quit (Remote host closed the connection)
14:47:33*nsf joined #nim
14:48:07*yglukhov joined #nim
14:51:22*yglukhov quit (Remote host closed the connection)
14:51:37*chemist69 quit (Ping timeout: 255 seconds)
14:59:14*yglukhov joined #nim
15:01:49Tiberiumoh, new website looks very good :)
15:03:35*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:13:26*Jesin quit (Quit: Leaving)
15:17:31*Jesin joined #nim
15:30:45PMunchTiberium, yeah it looks real good
15:31:49*chemist69 joined #nim
15:36:10TiberiumI hope forum will get new design too
15:36:2918WAAS0DXforum notifications would be enough for me
15:36:34Tiberiumbecause if you go to https://forum.nim-lang.org/ half of the links are broken
15:36:41Tiberiumand designs are different :)
15:40:51PMunchHmm, is the "Game Framework" text also split over two lines for you?
15:41:37FromGitter<grumblygibson> PMunch, the text is split for me too.
15:42:53Tiberiumon what page?
15:43:51FromGitter<grumblygibson> Front page, featured projects.
15:45:51Tiberiumfor me it's on one line
15:45:56TiberiumChrome + linux
15:46:00dom96Yeah, CSS is annoying :)
15:46:09dom96Thank you all for the nice comments :D
15:46:26PMunchTiberium, Vivaldi + linux here. Probably a screen size thing
15:46:31dom96grumblygibson: we don't deactivate users, maybe you deactivated yourself?
15:46:37PMunchdom96, CSS can be such a pain :P
15:46:37Tiberiumi have 1366x768 on my main screen
15:47:01Tiberiumbut luckily I'll get a new display on friday
15:47:06FromGitter<mratsim> Oh vivaldi, I tried it, especially for the tabs on the left. But in the end I switched back to Opera
15:47:17Tiberiumbasically vivaldi is still webkit
15:47:19dom96grumblygibson: I activated you in any case.
15:47:21PMunchWow, that's a small screen Tiberium
15:47:30TiberiumPMunch, yeah
15:47:39FromGitter<grumblygibson> @dom96 Yay! Thank you. Not sure how I would have deactivated myself.
15:47:42Tiberiumdom96, also, Mixed Content: The page at 'https://nim-lang.org/' was loaded over HTTPS, but requested an insecure image 'http://www.gravatar.com/avatar/6275fdd7f48ec9184c5d6511d525c563?s=100&d=identicon'. This content should also be served over HTTPS.
15:47:44dom96and yeah, it seems that a lot of issues happen on larger screens.
15:47:49PMunchmratsim, I used to use Opera. But nowadays it's basically a reskin of Chrome..
15:47:51dom96Tiberium: Already fixed in a PR
15:47:54Tiberiumok :)
15:47:55dom96Which I will get to soon
15:47:57dom96for now bbl
15:48:14PMunchMine isn't all that big 1680x1050..
15:49:07FromGitter<mratsim> Btw, with so much people working on games in Nim, it may be time to bring Nim support to Codingame (a website with gaming challenges between 2 people) https://www.codingame.com/start
15:49:37Tiberiumdom96, also, you can look at https://developers.google.com/speed/pagespeed/insights/?hl=ru&url=https%3A%2F%2Fnim-lang.org
15:49:48Tiberiummratsim: they emailed to dom96
15:49:57Tiberiumbut he didn't got any reply to his email
15:50:04FromGitter<mratsim> oh really? interesting
15:50:14Tiberiumdom96, sorry, https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fnim-lang.org
15:50:37*gokr joined #nim
15:51:47PMunchdom96, to fix that one specific thing you can do "white-space: nowrap;" in the CSS
15:52:13FromGitter<mratsim> CSS is harder than every other programming language >_>
15:52:36PMunchThe problem is that it isn't very standardised
15:52:56PMunchSo all your CSS becomes more of a suggestion than a rule :P
16:02:08*arnetheduck quit (Ping timeout: 240 seconds)
16:08:40*rokups joined #nim
16:09:06FromGitter<mratsim> The precendence rules are incomprehensible as well. If you use a framework like Bootstrap you spend your time fighting it …
16:13:3918WAAS0DXI have a weird bug
16:16:50FromGitter<mratsim> I find the names sort (inplace) - sorted (copy), reverse (inplace) - reversed (copy) in the `algorithm`module unintuitive. Not sur how to improve that though
16:17:2618WAAS0DXI have a horrible bug
16:17:3518WAAS0DXI return a tuple with size and align
16:17:5418WAAS0DXI check if size and align have the correct value
16:17:5718WAAS0DXthey do
16:18:0118WAAS0DXthen I return
16:18:1218WAAS0DXand from the calling context, size is wrong
16:18:1718WAAS0DXWFT
16:18:2118WAAS0DXWTF
16:22:20FromGitter<mratsim> You should put together a minimal test case so people can reproduce
16:23:3818WAAS0DXmratsim: well that is quite the problem
16:28:11FromGitter<mratsim> Btw, is it possible to do use iterator like that (somewhat Rust like): ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ I’ve implemented items for my type then I’m extracting the value to build a sequence of tuple like so (val1, 1), (val2, 2), (val3, 1), (val4, 2), (val5, 1), (val3, 2) ... [https://gitter.im/nim-lang/Nim?at=58f7901ead849bcf429d0f54]
16:29:00FromGitter<mratsim> the last val3 should be val6 of course, copy-pasting ...
16:30:30FromGitter<mratsim> (Also I understand that I loop once with toSeq, and once with mapIt, and once with zip but I’m trying to just get together a quick proof of concept before optimizing)
16:31:34*Trustable joined #nim
16:35:46*Mighty_Warthog joined #nim
16:40:03FromGitter<barcharcraz> the new website is nice
16:40:05FromGitter<barcharcraz> very snappy
16:41:34zielmicha_@18WAAS0DX it's possible to get forum notifications, by subscribing to [email protected]
16:43:21dom96TIberium: PRs welcome ;)
16:43:39dom96zielmicha_: not quite, this has been down for a while.
16:44:11dom96PMunch: Ahh yes, then i'll probably have them overlapping :)
16:45:02*chemist69 quit (Ping timeout: 255 seconds)
16:45:27*chemist69 joined #nim
16:46:25*Mighty_Warthog quit (Quit: AtomicIRC: The nuclear option.)
16:52:38*yglukhov quit (Remote host closed the connection)
16:54:03*yglukhov joined #nim
16:55:39*Mighty_Warthog joined #nim
16:55:48*Mighty_Warthog quit (Client Quit)
16:57:15*sz0 joined #nim
16:57:24*yglukhov quit (Read error: Connection reset by peer)
16:57:44*yglukhov joined #nim
16:59:05*libman joined #nim
17:01:23*18WAAS0DX quit (Remote host closed the connection)
17:01:38*krux02 joined #nim
17:02:02*yglukhov quit (Ping timeout: 240 seconds)
17:02:59*gokr quit (Quit: Leaving.)
17:03:32FromGitter<krux02> can someone take a look at the last comment in this pull request: https://github.com/nim-lang/Nim/pull/5664
17:04:18FromGitter<krux02> I simply have no single clue how the value for size could have changed between return and reading the result in the calling function
17:06:29federico3zielmicha_: the mlist is dead :(
17:06:55*xmonader joined #nim
17:07:29PMunchkrux02, that is very weird..
17:08:38FromGitter<krux02> the result value can be changed, when there is a `defer`, but there is no defer
17:09:54*Mighty_Warthog joined #nim
17:11:28*PMunch quit (Quit: leaving)
17:17:52Tiberiumcan I use some one-file C library without making a dynlib?
17:18:26Tiberiumah, compile pragma
17:18:27krux02yes
17:18:34Tiberiumbut how to make bindings to it after that?
17:18:42*Mighty_Warthog quit (Ping timeout: 255 seconds)
17:18:45krux02importc
17:19:02*xmonader quit (Ping timeout: 240 seconds)
17:19:18Tiberiumah ok!
17:19:19krux02proc foobar(a,b: cint): cint {.importc.}
17:19:32Tiberiumso foobar must be defined in this C library?
17:19:38krux02yes
17:19:39Tiberiumok then! thanks!
17:20:12krux02you basically have to port the header to nim.
17:20:24krux02c2nim can help you there
17:21:51*Mighty_Warthog joined #nim
17:21:51*Mighty_Warthog quit (Client Quit)
17:22:01*Mighty_Warthog joined #nim
17:22:01*Mighty_Warthog quit (Client Quit)
17:22:20*Trustable quit (Remote host closed the connection)
17:22:22*Mighty_Warthog joined #nim
17:22:22*Mighty_Warthog quit (Client Quit)
17:22:33*Mighty_Warthog joined #nim
17:22:33*Mighty_Warthog quit (Client Quit)
17:22:43*Mighty_Warthog joined #nim
17:22:43*Mighty_Warthog quit (Client Quit)
17:28:19Tiberiumkrux02, yay c2nim generated binding without any errors
17:33:01Tiberiumkrux02, but I still need to use tinyexpr c module, so I'll have to compile it, but it can't find it's own header
17:33:39TiberiumI mean header pragma
17:33:45Tiberium{.header:"tinyexpr.h"}
17:34:03krux02what is tinyexpr?
17:34:24Tiberiumtinyexpr is a library that I want to use in my app without making dynlib
17:34:29Tiberiumso compile it at compile-time
17:34:35Tiberiumhttps://github.com/codeplea/tinyexpr
17:34:43TiberiumTinyExpr is self-contained in two files: tinyexpr.c and tinyexpr.h.
17:35:28*xmonader joined #nim
17:37:04krux02can you tell me what you have?
17:37:40krux02as far as I know you only need for a nim library the c file and a ported version of the header
17:37:56TiberiumI have a calc.nim and a folder tinyexpr, where I have generated by c2nim tinyexpr.nim, also tinyexpr.c and tinyexpr.h. In calc.nim I'm importing "tinyexpr/tinyexpr"
17:38:09FromGitter<mratsim> Trying to create my `.nimble`package information. How do I know the minimum nim version required? I always built against him
17:38:15krux02put it on a github repo then I can take a look at it
17:38:18FromGitter<mratsim> nim latest commit
17:38:32FromGitter<mratsim> https://github.com/mratsim/Arraymancer
17:38:43Tiberiumkrux02, ok
17:41:29*yglukhov joined #nim
17:41:51*Vladar joined #nim
17:45:13Tiberiumkrux02, https://github.com/TiberiumN/test
17:45:37*yglukhov quit (Ping timeout: 240 seconds)
17:47:31krux02I don't think you need tho header pragma afaik you only need it, when you define the function in the header
17:48:10krux02so when it is header only
17:49:05*throwaway2834 joined #nim
17:50:31Tiberiumkrux02, I remove header from tinyexpr.nim, so I'm trying to compile calc.nim, and gcc hanged. zero cpu usage
17:50:33Tiberiumbut it doesnt end
17:50:49Tiberium(it fails at compiling tinyexpr.nim)
17:50:49krux02hmm
17:51:05*vivus joined #nim
17:51:30Tiberiumit doesn't fail exactly, it just doesn't end
17:55:18Tiberiumkrux02, it hangs for me with this code: https://github.com/TiberiumN/test/commit/98a8fccb23b5b227d780c3b97bea2b153db02c4f
17:55:24*nsf quit (Quit: WeeChat 1.7)
17:57:29krux02Tiberium: well I tried to compile tinyexpr
17:57:32krux02it just fails
17:57:36krux02I mean the c library
17:57:41Tiberiumah shame
17:57:50TiberiumI forgot to re-add tinyexpr.h
17:58:00TiberiumI deleted it when I was experimenting (deleted from tinyexpr.c)
17:58:00throwaway2834Is `./koch install /usr` supposed to omit installing nimble?
17:58:40Tiberiumkrux02, so now it fails again that it can't find "tinyexpr.h"
17:58:48Tiberiumkrux02, I have "#include <tinyexpr.h>" in tinyexpr.c
17:59:23Tiberiumso it has different current working dir
17:59:34Tiberiumah no??
17:59:42Tiberiumah yes
18:00:10Tiberiumtinyexpr/tinyexpr.c:61:22: fatal error: tinyexpr.h: No such file or directory
18:01:06throwaway2834Which build system should i use?
18:01:29Tiberiumthrowaway2834, ./koch nimble will build nimble
18:01:43TiberiumIIRC
18:02:17krux02you may not change tinyexpr.c
18:02:28krux02that will destroy any future update of tinyexpr
18:02:43Tiberiumkrux02, no, no, I restored it by adding "tinyexpr.h"
18:02:49TiberiumI removed it accidentally by myself
18:02:54krux02ok
18:03:01Tiberiumkrux02, https://github.com/codeplea/tinyexpr/blob/master/tinyexpr.c
18:03:23Tiberiumkrux02, again it's my fault
18:03:29Tiberiumkrux02, ok, now gcc fails
18:03:45krux02nope it's not there
18:03:47krux02I just pulled
18:04:58Tiberiumkrux02, I'll push it, wait a sec
18:05:01krux02btw are you serices about this: cast[ptr cint](err)
18:05:43Tiberiumkrux02, I don't know the proper way :)
18:05:51Tiberiumkrux02, ok, I've pushed it (sorry for nimcache)
18:06:19throwaway2834Tiberium: imo its confusing to have `./koch boot` not build all the tools :S
18:08:52Tiberiumkrux02, ah, I have to add "-lm" to C compiler
18:09:04Tiberiumno
18:09:33Tiberiumkrux02, yay it works
18:09:40Tiberiumbut I have to --passL:"-lm" manually
18:10:17krux02cool
18:10:43krux02but that thing with cast is just wrong
18:11:30Tiberiumkrux02, ok, I removed --passL (just added "import math" in my calc.nim) and it works. how I need to pass "ptr cint" to function?)
18:11:35krux02error is very likely a parameter you pass to the c function that is used as a return value to write an error code into
18:11:57krux02you just need this:
18:12:00krux02var err: cint
18:12:03krux02err.addr
18:12:07krux02there you have a pointer
18:12:13Tiberiumkrux02, thanks!
18:12:40krux02same for all other types
18:13:02krux02you can write a wripper that does this for you
18:13:52Tiberiumlibman, hi. Can I include a C library with Zlib license in my MIT application? (all licenses are in source code)
18:13:57Tiberium?
18:14:03krux02eg: proc free(n: var te_expr) = te_free(n.addr)
18:14:13Tiberiumkrux02, wow, looks nice
18:15:08throwaway2834Tiberium: yes, the zlib license is very permissive
18:15:10libmanI'm not a licensing expert. I just know that Zlib falls a bit short of copyfree.org's definition (see bottom of http://copyfree.org/standard/rejected )
18:15:21Tiberiumthrowaway2834, ok, nice then
18:17:40krux02does anyone know where the nimcache of the compiler is located when I compile with `./koch temp`?
18:18:01libmanSo if choosing a license, use MIT (or equivalent, as whitelisted on copyfree.org) over Zlib. If you have a choice between two C libraries to use, all things being equal, choose one with copyfree license over Zlib license.
18:18:56libmanBut if the only available library is Zlib, don't let license puritanism keep you from getting things done. ;-)
18:19:41throwaway2834i mean, libSDL uses zlib and is everywhere
18:19:50libmanTiberium: which C library is it?
18:20:01krux02well I have never heared of any legal issues of "ind want to share this library with as many people as possible" licenses
18:20:20libmanYeah. An ideal "pure copyfree userland" wouldn't use SDL for this reason.
18:20:29Tiberiumlibman, https://github.com/codeplea/tinyexpr/ simple math expression parser
18:21:02throwaway2834Tiberium: don't worry, just use it.
18:21:48krux02most licenses are: "Don't sue me, don't pretend it's yours, do whatever you want"
18:21:53krux02gpl is different
18:22:14krux02so as long as you are not in gpl land, don't worry too much about licenses
18:22:38libmanTiberium: Is is better than https://fastmathparser.codeplex.com/ (MIT license) ?
18:22:42throwaway2834if you become sucessfull, you will be sued for the most dumb stuff, like violating patents on double linked lists or some other bs.
18:23:01Tiberiumlibman, I don't want a big library
18:23:05throwaway2834is there any tutorial on how to structure+build a project larger than hello world? Should i use nim, nimble, koch or just plain makefiles?
18:23:14krux02well that is indeed a problem
18:23:28def-throwaway2834: http://howistart.org/posts/nim/1/
18:23:39def-not big, but bigger than hello world
18:24:03krux02throwaway2834: There are companies that make a lot of money, by only suing other companies about legal stuff
18:24:11krux02those companies are like cancer
18:24:18libmankrux02: Some non-GPL licenses have more restrictions (ex. Apache, MPL, Zlib, Python, PHP, etc) than just "don't sue me, don't pretend it's yours". Use copyfree.org lists.
18:24:19throwaway2834krux02: patent trolls?
18:24:44krux02yes I think that is their name
18:24:51throwaway2834def-: im confused, cause nimble is supposed to be bundled with nim, but your example shows seperate installation.
18:25:39krux02throwaway2834: nimble was once separate
18:25:50krux02caused problems
18:26:24throwaway2834i don't grok why the gentoo ebuild doesn't install nimble and the other tools :S
18:26:44libmanNo license info on https://github.com/shd101wyy/math-expression-parser-c ...
18:28:41throwaway2834def-: if this is your blog, do me a favor and add the writing date to each post :P
18:28:51libmanTiberium: https://github.com/beltoforion/muparser/
18:29:34Tiberiumlibman, ah, sorry, I meant math parser and evaluation engine
18:29:59Tiberiumlibman, thanks for your suggestions, but for now I'll stick with tinyexpr, maybe I'll find another library in future
18:30:08Tiberiumfor now I just want to make features to my main application
18:31:09krux02I want to do that, too
18:31:23krux02but my pull request for the compiler is not finished
18:31:43krux02and it has a "I have no idea what is going on here" bug
18:31:55throwaway2834i see plain old `nim compile foo.c` builds the entire project.
18:32:17throwaway2834when i import the rest
18:32:36krux02https://github.com/nim-lang/Nim/pull/5664
18:36:34*icebattle joined #nim
18:37:27dom96Made some small improvements to nim-lang.org. Can't believe I forgot to include the tutorial and similar links in documentation.
18:37:56dom96Can anyone test whether the sponsor tags are still wrapping for them?
18:39:00throwaway2834the sponsor tags work. Does the blog support atom/rss nowadays?
18:43:31*GustavoLapasta joined #nim
18:47:56dom96yep: https://nim-lang.org/feed.xml
18:50:19throwaway2834dom96: the last time i subscribed to it, the text was cluttered with partial html code like <p>foo</p>
18:52:41*Arrrr quit (Read error: Connection reset by peer)
18:57:30FromGitter<Bennyelg> Guys on the new site, the code example template & font can anyone tell me ? :D
18:57:50*Nobabs27 joined #nim
18:59:44FromGitter<stisa> what would you guys think of something like this for the forum layout? desktop https://ibin.co/3JdEsVfmvxLa.png and mobile: https://ibin.co/3JdFDjz5UHPi.png
19:00:02*Sentreen quit (Quit: WeeChat 1.4)
19:00:28*Sentreen joined #nim
19:00:30FromGitter<Bennyelg> I have notice something. ⏎ I tried to register the forum I was told to check my email and confirm but I never got any message.
19:00:59euantorForum on desktop looks a little too empty in the above I reckon
19:01:18FromGitter<mratsim> ask @dom96 @Bennyelg
19:02:17*rokups quit (Quit: Connection closed for inactivity)
19:02:41FromGitter<mratsim> agree with euantor. Also the yellow is too much in contrast with the Digital Ocean logo in my opinion
19:02:55dom96the yellow is too much
19:03:01dom96I already have some ideas for how to design the forum
19:03:31dom96Basically semantic UI
19:03:38dom96+ a banner in the same style as the nim-lang one
19:03:45dom96but no website links
19:03:54dom96It's better to use that space for forum specific stuff
19:04:01dom96like whether you're logged in or not
19:04:04krux02dom96: I need to run the compiler in a debugger
19:04:06FromGitter<Bennyelg> @dom96 can you please provide me the theme name of the example in the new site? + the font ?
19:04:07krux02can you help me?
19:04:21dom96bennyelg: which example?
19:04:44krux02I have a very weird bug, and I need to know why that behaviour is like it is
19:04:58krux02so I would like to compile the nim files in realease mode (no source mapping)
19:05:11krux02but then compile the c code with debug information (-g)
19:05:12FromGitter<Bennyelg> the Nim example of the average line length
19:05:24FromGitter<Bennyelg> @dom96 average line length nim example
19:05:25krux02so that I can debug the generated C code
19:05:36FromGitter<mratsim> (I thought your issue was regarding the forum mails Benny :?)
19:05:47FromGitter<Bennyelg> This is another issue
19:05:56FromGitter<Bennyelg> I cant get the confirmation email
19:09:54FromGitter<stisa> @Bennyelg looking at css, it should be https://github.com/zenorocha/dracula-theme
19:10:35dom96^
19:10:53dom96bennyelg: what nick did you use on the forum?
19:12:27krux02well funny I use dracula theme right now
19:12:38dom96krux02: maybe you could compile the C sources from the nimcache manually?
19:13:10FromGitter<stisa> dom96 do you mean https://semantic-ui.com/ ? Interesting, I'll wait for your redesign then
19:13:37dom96yeah, it's very easy to work with
19:13:50dom96I found spectre css recently too, that might be a good alternative
19:14:37FromGitter<stisa> I was just trying to use the same base framework for both site and forum, to make transitions as smooth as possible
19:16:47CalinouSemantic UI looks good
19:16:50FromGitter<stisa> dom96 I'd go with the least css possible, in my (very limited) experience it's a pain to get right for multiple browsers
19:16:54Calinouit's probably not usable without JavaScript though
19:17:04Calinoustisa: if you only care about IE 10 and later (or better, iE 11 and later), it's not that bad
19:17:10FromGitter<Bennyelg> guys any web crawling packages on nim?
19:17:13Calinoubrowser-specific quirks do exist outside of IE, but they aren't *that* common
19:17:29FromGitter<barcharcraz> safari is the bad one these days
19:17:45FromGitter<mratsim> basically there is Firefox, Safari, Webkit and IE11/Edge
19:17:50FromGitter<barcharcraz> and IE's javascript engine having very different perf characteristics than Mozilla/Chrome's
19:17:56Calinouyeah, Safari is the new IE
19:18:53krux02./koch csource -d:release seems to be in a long loop is that normal?
19:19:10Tiberiumcan I convert 1.2e-5 to something like 1.2*10^(-5)
19:19:32Tiberiumso I think I need to use string operations?
19:20:10krux02well I really need some help here, and I feel a bit lost :(
19:21:44FromGitter<Varriount> krux02: Generating csources takes a bit. It generates sources for ~6 different platforms
19:22:07krux02Varriount, I need to debug the compiler
19:22:44FromGitter<Varriount> Then why are you generating csources?
19:23:05krux02well I want the c sources to not have the source mapping
19:23:18krux02and then compile those C files with debug information
19:23:29krux02the source mapping just makes the c files unreadable
19:23:45krux02https://forum.nim-lang.org/t/2920
19:26:06*GustavoLapasta quit (Quit: Leaving)
19:26:51FromGitter<krux02> @Varriount I reached the limits of printf debugging
19:27:07FromGitter<krux02> within no operation at all the value changes
19:27:10Tiberiumhow can I pass pointer of Nim proc to C function?
19:27:18Tiberiumconst void *address;
19:27:36demi-Tiberium: how do you mean?
19:27:51Tiberiumdemi-, I mean I have a C library, and wrapper around it
19:27:57demi-yeah
19:28:05krux02Tiberium: nim procs (lambdas) are a tuple of a function pointer and a context pointer
19:28:13Tiberiumkrux02, ok!
19:28:14krux02the function pointer is something you could actually call from C
19:28:16FromGitter<Varriount> @krux02 Try `nim c --lineDir:off ./compiler/nim.nim`
19:28:31FromGitter<v3ss0n> hi guys ! how is nim going!
19:28:32Tiberiumkrux02, only lambdas?
19:29:00demi-Tiberium: are you defining a callback in nim that gets taken by a C function (or something)
19:29:07Tiberiumdemi-, yeah, like that
19:29:13krux02well to level functions are just functions
19:29:19krux02they don't need a context pointer
19:29:27Tiberiumand in c2nim generated wrapper function is " address*: pointer"
19:29:43Tiberiumso I need to convert my function to "pointer" and send it to C
19:29:45demi-ah i see
19:30:07krux02when they are converted to a function object (lambda) then the environment pointer is set to 0
19:30:17krux02(no guarantee of correctness)
19:30:30FromGitter<Varriount> @v3ss0n Same old, same old.
19:30:37krux02the fact is that there are different ways a function can be stored
19:30:39FromGitter<Varriount> @v3ss0n The website was updated.
19:30:48krux02therefore there is no general way of converting a function to a c pointer
19:31:09demi-Tiberium: i believe by using `cast[pointer](func_ptr)`
19:31:10krux02especially when you want to call the function from the C side
19:31:13TiberiumI will try https://forum.nim-lang.org/t/1801
19:31:14FromGitter<Varriount> krux02: Don't you mean there's no general way of converting a closure?
19:31:23krux02yes
19:31:48FromGitter<Varriount> Regular, non-closure procedures can be turning into C function pointers by casting.
19:31:59demi-^
19:32:19FromGitter<krux02> I have written enough wrappers to know that wrapping closures is a bit tricky and needs different approaches and some cases don't work sufficient and you just have to live with it
19:33:36FromGitter<krux02> @Varriount what do you mean by ``nim c --lineDir:off ./compiler/nim.nim``
19:33:57FromGitter<Varriount> nim.nim is the actual main compiler file.
19:34:09FromGitter<krux02> ah ok
19:34:14FromGitter<Varriount> lineDir controls the output of line directives
19:34:37FromGitter<krux02> that means that compiler/nim will be my new temp compiler
19:36:37throwaway2834can i build nimble packages without nimble?
19:36:57FromGitter<krux02> @Varriount well that did not work
19:36:59demi-no?
19:37:06FromGitter<krux02> that did turn off all debug information
19:37:51Tiberiumyay it works! thanks everyone
19:37:55Tiberiuma bit noisy but works
19:38:26krux02Tiberium: congratulation
19:38:51Tiberiumalso can I create an array which will be filled with information at compile time?
19:39:07throwaway2834yes, see const expressions
19:39:23demi-using the static Exec/read methods, yeah
19:39:29*throwaway2834 quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
19:39:39*nsf joined #nim
19:40:00Tiberiumah, I mean I would append some types to my array at compile time from different places
19:40:03Tiberiumbut all at compile time
19:40:12Tiberium(because arrays are more efficient than sequences)
19:40:22Tiberiumah no this wouldn't work
19:40:24krux02well there are statick blocks, const values, and macros
19:40:29krux02all evaluate at compile time
19:40:29demi-yeah
19:42:34dom96Calinou: indeed, semantic UI also has a dependency on jquery which sucks
19:43:22krux02nim c --lineDir:off --debuginfo compiler/nim
19:43:25dom96That said, I haven't heard a single person say "I love NimForum because it doesn't depend on any JavaScript"
19:43:28krux02that is what I needed
19:43:30krux02yay
19:43:33dom96So I don't think this goal of "no javascript" is needed.
19:43:58dom96krux02: But you said you wanted release mode?
19:44:02krux02well I use noscript in my browser
19:44:18krux02and things that use javascript are generally suspicious
19:44:36krux02javascript is mostly used to harm the user
19:44:51krux02just saying I do care that the forum doesn't need javascript
19:45:20Tiberiumwhat is vars here? https://gist.github.com/TiberiumN/78c98948ef40dc4fbac8156eab7b124f
19:45:22krux02not meaning that javascript shouldn't be used for things like notifications and some other realtime stuff
19:45:25Tiberiuman array?
19:45:36Tiberiumbecause it can contain multiple types
19:45:37Tiberiumah
19:45:42TiberiumI mean multiple entries
19:45:58Tiberiumte_variable is a struct
19:47:01dom96Also regarding JS performance. Firefox, to me, seems the slowest nowadays.
19:47:04dom96Not that I've used Edge much
19:47:12dom96But my god is it slow for me lately
19:47:18FromGitter<krux02> it is an array
19:47:29Tiberiumand how can I do the same in Nim?
19:47:31FromGitter<krux02> it is an array of te_variable
19:47:35FromGitter<krux02> array of struct
19:47:38Tiberiumah ok
19:47:39Tiberiumnvm
19:47:56Tiberiumbut there's no size specified
19:47:58FromGitter<krux02> you can use array or seq
19:48:14FromGitter<krux02> but for te_compile, you need to pass the pointer to the first element
19:48:24*Nobabs27 quit (Quit: Leaving)
19:48:30dom96This is by the way the best way to shut down the stupid "Nim doesn't produce binaries, it transpiles to C!" "argument" https://www.reddit.com/r/programming/comments/66672e/new_nim_programming_language_website_is_live/dgh9hea/ :P
19:48:58Tiberiumkrux02, yeah, I know, you also need to pass number of functions to te_compile
19:49:01dom96Varriount: thanks for holding down the fort yesterday btw :)
19:49:05Tiberium(how many of them are in array)
19:49:09FromGitter<krux02> then you can again write a wrapper that takes an openarray[te_variables] and fills the length parameter for you
19:51:08Tiberiumyep
19:52:25FromGitter<krux02> openarray has a length
19:52:48krux02sorry just ignore that
19:53:32dom96In other news, here is an excerpt from my book http://freecontent.manning.com/delving-into-nim/?utm_source=twitter&utm_medium=social&utm_campaign=article&utm_term=nim_in_action&utm_content=article_apr_2017
20:05:42*Tiberium quit (Remote host closed the connection)
20:08:39FromGitter<YandongZhang> Hello, everyone. I just tried to use the Emacs org-mode together with Nim and met an issue. Does anybody have experience of ob-nim for Emacs?
20:09:13FromGitter<YandongZhang> The Emacs nim-mode itself looks OK.
20:10:40dyce[m]i am curious if concepts could be used as a way to make interfaces? similar to this example https://gist.github.com/PhilipWitte/33819b40112a18c30b43
20:10:48dyce[m]or would that be abusing concepts
20:11:43FromGitter<Varriount> dyc[m]: They can't be used to make runtime interfaces (yet, zahary is working on that).
20:12:28ldleworkVarriount, ah good to know someone is actually working on it
20:12:31ldleworkI thought it was just an idea
20:13:36dyce[m]but generally interfaces are caught during compile time? what does catching at runtime do? allow for some sort of duck typing?
20:15:09FromGitter<Varriount> dyce[m]: Yes. Allows for types.
20:17:53dom96in fact, it might already be implemented
20:18:07dom96see the devel manual for details
20:23:31ldleworkIts totally not implemented...
20:23:44ldleworkVarriount, right?
20:23:55ldleworkAlso, constraining generic types is what concepts already do.
20:24:09FromGitter<Varriount> I haven't tested anything. All I know is what is in the manual
20:24:12ldleworkremind me what adding the vtable does again?
20:24:26FromGitter<Varriount> (The version of the manual in the development branch)
20:24:37ldleworkI know I had an issue where I required thi kind of thing just days ago but I'm dumb and have memory problems.
20:25:01ldleworkSomething like
20:25:13FromGitter<Varriount> It's supposed to make common procedures (and possibly attributes?) outlined in the concept accessible at runtime.
20:25:19FromGitter<Varriount> Like an interface
20:25:37ldleworkVarriount ah right so you can like get the correct implementation
20:25:42ldleworkKinda like methods?
20:25:46*PMunch joined #nim
20:28:11PMunchEy dom96 you fixed the wrapping :)
20:28:51dom96PMunch: yay, glad it works :)
20:29:16*Vladar quit (Quit: Leaving)
20:31:13*shashlick quit (Ping timeout: 258 seconds)
20:32:49*shashlick joined #nim
20:38:33*rauss joined #nim
20:43:15FromGitter<Varriount> ldlework: Yes, like methods
20:46:13*deciduously joined #nim
20:47:00*deciduously quit (Client Quit)
20:47:41FromGitter<Varriount> Except instead of an inheritance tree, you have a behavior tree.
20:48:24FromGitter<Varriount> From what I gather, the compiler will generate wrappers/adapters
20:48:35*bjz joined #nim
20:49:37*rauss quit (Quit: WeeChat 1.7)
21:07:00FromGitter<PDelak> hi. how can I escape backtics in macros?
21:07:20FromGitter<krux02> well that is something I don't do
21:07:58FromGitter<krux02> there is this @ operator I think
21:08:46ldleworkhi krux02
21:09:10krux02ldlework: hi ldlework
21:13:03*TheLemonMan quit (Quit: "It's now safe to turn off your computer.")
21:18:21*Mighty_Warthog2 joined #nim
21:19:50*Mighty_Warthog3 joined #nim
21:21:22FromGitter<mratsim> vote for me: https://www.reddit.com/r/programming/comments/66672e/new_nim_programming_language_website_is_live/dghjiyf/
21:21:35euantorGoing back to the earlier discussion about Firefox's JS performance, I'm glad it's not just me who noticed it was super slow recently
21:22:44*gokr joined #nim
21:24:29*Snircle joined #nim
21:24:38*throwaway8137 joined #nim
21:24:45krux02euantor: nope ;)
21:25:05throwaway8137Building nimble fails with: compiler/commands.nim(59, 16) Error: cannot open '../doc/basicopt.txt'
21:25:13throwaway8137why does it need to access ../
21:25:27euantorAt this point I'm almost thinking of giving Edge a chance
21:25:34throwaway8137it fails both on master and on 0.8.4
21:26:45FromGitter<Varriount> @mratsim It's odd how much more critical reddit users tend to be, compared to those on hacker news
21:27:14*nsf quit (Quit: WeeChat 1.7)
21:27:21ldleworkhaha the competiition to minimize the book cover is hilarious
21:30:09FromGitter<Varriount> Well, it was rather large.
21:30:36ldleworkJust spitballin', here, but it seems like a lot of web browsers are hopping on this newfangled JS train these days.
21:30:38ldleworkhahahaha
21:31:41FromGitter<Varriount> ldlework: is that a quote?
21:31:46ldleworkyeah
21:31:56ldleworkhttps://www.reddit.com/r/programming/comments/66672e/new_nim_programming_language_website_is_live/dggpb90/
21:32:06ldleworkSomeone asked why you'd ever want to compile to JS
21:32:08*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:33:31FromGitter<Varriount> :/
21:33:35FromGitter<krux02> well you wouldn't want to, but maybe you need to
21:34:37FromGitter<krux02> 5 years from now in the future, webassembly will be pretty widespread I guess
21:35:46dom96throwaway8137: how are you compiling it?
21:38:50throwaway8137dom96: i git-cloned the nimble repository, cd-ed into it and running `nim c src/nimble` like in the manual.
21:38:51*bjz joined #nim
21:39:56dom96throwaway8137: you're better off using 'koch tools' (or koch nimble as the Nimble readme shows)
21:40:34FromGitter<mratsim> @Varriount I don’t knoww reddit programming sub that well but I guess there are some turf wars and when a new kid comes, everyone picks on it ;)
21:41:15dom96throwaway8137: The Nim archives come with Nimble and that is how you set it up.
21:42:24*Mighty_Warthog3 quit (Ping timeout: 255 seconds)
21:42:43throwaway8137dom96: the nim archive also comes with koch. But the ebuild in the official gentoo package repository doesn't seem to care :S
21:43:17*Mighty_Warthog2 quit (Ping timeout: 258 seconds)
21:43:21dom96the gentoo package should include Nimble :\
21:43:44throwaway8137it dosen't. I tought its one of you guys here that maintains it :S
21:44:05dom96Perhaps, but none of the core devs that I know of.
21:44:34dom96You might be better off just downloading Nim from the website
21:45:07throwaway8137i could roll my own or install it manually, but after trashing my system by "trying out" so many languages im kinda tired
21:46:54throwaway8137and kinda got the feeling that whats not in the repos, isnt mature/relevant enough
21:47:06throwaway8137especially after doying with languages like d and its ecosystem
21:47:22throwaway8137toying*
21:48:22FromGitter<mratsim> How is D?
21:49:01*gokr notes some really nice informative posts on that reddit - seems we have some more Nimmers on board
21:49:31throwaway8137on paper its brilliant. But it feels unfinished and changes to quickly.
21:50:03gokrthrowaway8137: One nice bit with Nim is that you don't need to "install" it. Just clone, build and point your PATH to the bin dir in there.
21:50:52gokrIn fact, I have several Nim clones - and just change my PATH if I want to use a different version of Nim.
21:51:16demi-no nimenv?
21:51:54gokrI have no idea if there is such a thingy - but 2 lines of bash works for me to switch around.
21:53:36krux02yayayayay it works
21:53:40krux02finally
21:54:13FromGitter<mratsim> btw, in the “features” page, I really like the `source`link everytime
22:02:06*throwaway8137 quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
22:02:39gokrdom96: I think... you are kinda lying on the binary size thing.
22:03:10gokrAFAICT you are not compiling statically. I experimented earlier with this for Spry, so..
22:03:28gokr... to compare with say Go - you need to statically link and strip.
22:03:55gokrLike: nim c -d:release --opt:size --passL:-static hello.nim
22:04:02demi-i don't think it is wholly inaccurate to compare to go, since all of the stdlib that you use is linked
22:04:13gokrAnd then: strip -s hello_nim
22:04:26gokrdemi-: Come again?
22:04:47dom96https://github.com/dom96/binary_size/blob/master/compile.sh#L8
22:05:09demi-when you build nim code, you are building and linking statically the code from the stdlib, only code you don't link statically is external deps that are dynamically linked
22:05:59gokreh... not sure what you mean. If you just do regular nim c - then you end up with a dynamically linked executable.
22:06:12gokrJust check it with "file hello_nim" or "ldd hello_nim" and you will see.
22:06:14dom96The idea is primarily to test defaults.
22:06:23gokrOk, but.... it's misleading.
22:06:45demi-gokr: sure the executable is dynamic, but that doesn't mean the contents are linked dynamically.
22:06:55krux02well all modules in nim are compiled to c files, they are compiled to .o files and they are all compiled together into a binary
22:07:01krux02that is static linking
22:07:09demi-yeah, exactly
22:07:26krux02a static library is nothing more than an archive of .o files
22:07:45dom96All benchmarks are misleading in some way
22:07:51krux02at least on linux
22:07:54gokrdemi-: I have no idea what you are saying. If I compile it statically it will end up as 853 kb.
22:07:55dom96def- managed to get a 150 byte Nim hello world
22:08:12demi-krux02: the same is true on OS X
22:08:27dom96To be more fair I would need to compare how easy it is to achieve the same thing in other languages
22:09:40demi-gokr: when you build a nim executable, the compiler generates .c files for each module you import, regardless if they are from the standard library or from external dependencies via nimble. All of these .c files are run through your C compiler to generate .o files, which together, are linked to create your executable binary.
22:09:43FromGitter<mratsim> Does “fair” benchmark even exists >_>, everytime someone does a benchmark he gets flayed alive
22:10:14gokrdemi-: Yes. And?
22:10:30demi-all of the modules you import, all of that code gets put into your executable binary, that is static linking of libraries
22:10:48demi-that follows the same pattern as Go
22:10:50krux02well maybe glibc is linked dynamically, but I don't know
22:11:18gokrdemi-: No, Go will link fully statically. Nim will not.
22:11:30gokrUnless you use the switches I showed you above.
22:11:34demi-gokr: not on all platform
22:12:02gokrPerhaps not, but on my Linux for sure. And thus, comparing to Go is not "fair" as that graph looks right now.
22:12:12gokrBecause that difference is dynamically linked vs statically linked.
22:12:32gokrAs I just explained - if I make hello_nim also statically linked it goes up to 853 kb.
22:12:35demi-no, but it isn't wholly inaccurate, because the only difference there is deferral of loading code to runtime instead of at startup
22:12:48*zachcarter joined #nim
22:13:03gokrdemi-: I humbly disagree.
22:13:06zachcarterI have a couple of suggestions for the new website
22:13:18ldleworkhi zachcarter. hope you're well.
22:13:25zachcarterhey Idlework - likewise
22:13:41demi-gokr: ok, but the amount of work that goes info that process is trivial at best when you are talking about execution time and perf
22:13:44zachcarterbusy past few days at work :/
22:14:27zachcarterI was thinking (not sure how easy this would be to implement) some type of Nim playground akin to the Go playground, would be super nice
22:14:29gokrdemi-: I am just saying - don't compare apples with oranges. Right now we are misleading folks with that graph.
22:14:42*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
22:14:50ldleworkzachcarter: hehe it seems like every few days we talk about that
22:15:00krux02well there are a lot of misleading things on the internet
22:15:03demi-if you say so 
22:15:23zachcarterhaha I figured it may have already been brought up
22:15:29demi-i hardly think that is misleading because you aren't writing Go code for exec perf, lol
22:15:29zachcarteranother thing I think the new site is missing is a simple web server example
22:15:40gokrIn other words - let's say I am programming for Arduino or similar. Then the binary size is actually very important.
22:15:44zachcarterthe old site had one I think, on a carousel
22:16:15demi-gokr: now who is comparing apples and oranges tho
22:16:16krux02demi-: it's funny that on irc I see chinese and on gitter I see a smilie
22:16:27gokrdemi-: What do you mean?
22:16:40demi-krux02: sounds like your irc client doesn't handle unicode correctly
22:17:01krux02well i can type äöü ß ẞ
22:17:09krux02no problem
22:17:25krux02Ξ√Λℂ⊂∫∀∃∪∩ℵΠξλχιαεϵϵηπ
22:17:28krux02all fine
22:17:29demi-i'm guessing your client doesn't support certain planes
22:17:37demi-or joiners
22:17:50krux02well it doesn't really matter
22:18:18demi-¯\_(ツ)_/¯
22:20:06dom96zachcarter: play.nim-lang.org is waiting :)
22:20:16dom96or try.nim-lang.org
22:20:35zachcartersomeone just needs to build it?
22:20:40dom96indeed
22:21:03zachcarterhmm
22:21:14dom96it shouldn't even be that difficult
22:21:31dom96I'm here to help if you want :)
22:21:36zachcarterokay how would you run the compiler
22:21:50dom96osproc
22:21:58zachcarterah okay I see
22:22:09dom96you might need to fiddle with threads though
22:22:09demi-zachcarter: are you familiar with swift playgrounds?
22:22:14zachcarterI am not
22:22:40zachcartergoogling now
22:22:49zachcarterah this is nice
22:23:02krux02my compiletime offsetof alignof sizeof seems to be almost finished
22:23:13krux02I just got all my tests passed today
22:23:23krux02that was a headache
22:23:25demi-the basic principle is an interactive repl, but what it does is runs the compiler over a source file at timed intervals to simulate a repl/responsive programming environment
22:23:28dom96krux02: awesome! Wanna write an article on how you accomplished this?
22:23:55krux02Well I can sum it up it a few words.
22:23:58demi-it should be pretty easy to setup a timer to run over the given input on a loop and provide "live" feedback like that
22:24:06dom96nim-lang.org is now ready for guest posts
22:24:27krux02A lot of head scratching running around, yelling at the screen and then eventually I got it
22:24:45dom96so let me know if you want to write one or have written one
22:24:45krux02the key to success is to document everything that causes headache
22:24:53krux02and use good names for everything
22:24:53zachcarterdemi-: gotcha
22:25:08dom96krux02: there is far more to it, most don't know where to start.
22:25:09zachcarterI’m going to finish this space invaders demo I’m working on then play around with a nim playground
22:25:12krux02arguments like p and n are not very nice
22:26:05dom96Anyway, good night.
22:26:18krux02Well there is some completely undocumented compiler stuff that required Araq to answer my questions otherwise I am screwed
22:26:29zachcartergood night
22:26:30krux02but I am passed that
22:27:44krux02Well to say it shortly, I am not really interested to write an article about how I struggled to implement something in the compiler.
22:27:46FromGitter<Varriount> Am I the only one afraid of what will happen if @Araq gets run over by a bus?
22:28:03krux02I think there is a lot where we need documentation
22:28:09krux02but no blog posts
22:28:33krux02Varriount: nope
22:28:58krux02I think the language as such will have a big problems to develop further
22:29:33krux02I mean I already did two things in the compiler, that is by far not a lot, but it is much more than most people did
22:30:06krux02so if at some point things depend on me to continue, well I don't know
22:30:24FromGitter<mratsim> We trust in you Lord Krux :P
22:32:10krux02I think I would drop a lot of crufty backwards compatibility and remove everything that says depricated and was already deprecated before I started with the langage
22:32:46krux02make things manageable
22:34:26Araqhttps://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Constants.h#L191
22:34:57Araqwas the first file I looked at.
22:35:07demi-documentation is always the correct thing to do :)
22:36:27Araqhttps://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Function.h#L693
22:42:21Araqbut we all know LLVM is a bad codebase and soon about to die because nobody can maintain it, so let's instead look at GCC perhaps
22:42:32Araqhttps://github.com/gcc-mirror/gcc/blob/master/gcc/go/go-lang.c#L534
22:42:35Araqoops.
22:43:57Araqstupid Nim with its one letter character parameters that's somehow actually really quite common among compiler writers.
22:47:19Araqhttps://github.com/python/cpython/blob/master/Objects/floatobject.c#L167
22:47:52demi-a terribly habit
22:48:34gokrdom96: Just to ... try to convince you again that the binary size graph is misleading... You compile hello.nim to a dynamically linked binary, gives 74kb on my machine. But then you compile hello.rs to a partially statically linked binary (if I grok Rust properly, it links C libs dynamically, but Rust stdlib statically), turns pretty large. But if I tell it to "prefer dynamic" it will turn silly small - about 9kb.
22:49:02Araqhttps://github.com/LuaDist/luajit/blob/master/src/lj_ccallback.c#L107
22:49:29AraqI cannot even find a language implementation where it is NOT used ...
22:49:35demi-gokr: except the stdlib isn't dynamically linked
22:49:50demi-which is exactly what we were saying earlier
22:50:05gokrI am talking about Rust now.
22:50:44gokrMy point is that this is a game of "linking options" - and misleading in many ways.
22:51:00demi-except based on your example, nim and rust get linked the same way
22:51:01gokrThe go executable is stripped, but no other are. Not sure why.
22:51:20krux02Araq: well the problem was that there were function arguments that were a single letter only, and no comment string of what the actually were
22:51:30Araqhttps://github.com/ruby/ruby/blob/trunk/include/ruby/ruby.h#L2037
22:51:45krux02normally when documentation is missing function names are at least some help to know what the argument is used for
22:51:47demi-go executables are probably stripped because they realize they have a bad dependency problem due to statically linking the world
22:52:16gokrdemi-: It was dom96 who added the "-s" in compile.sh, not "they".
22:52:17krux02but when then the function names are also just a single letter, I am pretty clueless of what the argument is acutally supposed to be
22:52:29*xmonader quit (Ping timeout: 260 seconds)
22:54:39demi-if you are so suspicious about the nim binary size i'm sure you can examine that actual footprint of compiled code by looking at it in a decompiler
22:55:09gokrdemi-: Mmmm, you may have some kind of point in that yes, Rust seems to statically link its stdlib (but the rest dynamically) - and Nim "obviously" links its stdlib statically since it kinda is included on a C source level into the app. But... this means that if this is a game of "who can be the smallest dynamically linked binary" - then rust easily wins by adding "-C prefer-dynamic".
22:56:22demi-that wouldn't be a fair or equal evaluation would it, as then rust would dynamically link its stdlib
22:56:28gokrdemi-: I am not suspicious. I think I know what is going on. AFAIK the bulk of the Nim binary - about 70kb - is the Nim GC etc.
22:57:22Araqnim c -d:useNimRtl ?
22:58:03Araqbut the platforms where binary sizes matter usually have no OS that can do dynamic linking
22:58:14gokrdemi-: Well, my point all along is that comparing sizes of dynamically linked binaries isn't very fair at all. Especially not when we also include a statically linked Go binary.
22:58:42gokrAraq: Exactly. Which is why I mentioned Arduino.
22:59:05Araqit's perfectly fair to compare "binaries as required to be runnable on a particular OS"
22:59:09gokrSo that brings me full circle - wouldn't fully statically linked be a more interesting comparison? Or perhaps I am missing something.
22:59:37gokrAraq: Ok, but then we can add "-C prefer-dynamic" to rust and boom - we lost big time.
22:59:58gokrUnless we then do the useNimRtl etc
23:00:05Araqhow can you distribute a "prefer-dynamic" Rust binary?
23:00:08*gokr trying that...
23:00:23Araqyou need to ship some librust.so with it
23:00:29gokrAraq: I suppose it requires the installed rust stdlib, yep.
23:00:36Araqdefeating the size advantage.
23:00:37demi-presumably if you put it on a system with the same versions of the stdlib
23:01:04pydsignerBut we all know how that works
23:01:11gokryes, etc, etc etc. Which again, is the reason I find statically linked binaries more interesting to compare. Unless I miss some grand point.
23:01:22demi-which goes back to my point of it being a deferrence to when you are loading code, which is not really that important
23:01:42Araqthe point is to compare "binaries as required to be runnable on a particular OS"
23:02:05gokrLet me just finish by saying this: The Rust guys will bang on this like a drum. Don't worry about me - I am not anyone in need of convincing.
23:02:13Araqwith libc being the obvious unfair advantage because it's essentially part of the OS
23:02:20demi-I think the same still should hold true of nim coming out on top if you are assuming rust and nim are using the same lib c
23:03:10demi-since that applies to both of them, if not Go as well
23:03:15gokrMy only concern is ensuring we don't come off as "cheaters".
23:03:31gokrWhich IMHO it looks like we do right now. But again, don't mind me.
23:03:36demi-i think that someone that is going to pick a fight over this is going to do it anyway
23:04:48Araqwe don't cheat. we have a clear problem statement, clear rules and clear results.
23:06:12gokrAraq: Ok, so ... why do we strip go? And no other binaries?
23:06:25gokr(that's negative cheating, but anyway)
23:06:35demi-because that is such an unfair advantage 
23:06:47AraqI wasn't aware we strip Go.
23:06:54gokrAnd yeah, if I use -d:useNimRtl hello_nim goes to 10kb.
23:07:02gokrWe do.
23:07:15Araqwell we should strip Rust too then I guess.
23:07:20gokrAnd Nim.
23:07:42Araqwhy does it even make a difference, we have whole program dead code removal?
23:08:08gokrI am just pointing out "differences"
23:08:43gokrBtw, curious about Rust there... why does it include so much of its stdlib?
23:08:49gokrAnyone knows?
23:09:05gokrAlso, it links pthread etc
23:09:11Araqbecause it lacks dead code removal?
23:11:25demi-doesn't nim kinda pre-empt that by only linking in modules that are directly included anyway
23:11:33Araqnot sure Golang can do that properly, its "interfaces everywhere" approach kind of nukes the whole optimization
23:12:05Araqdemi-: exactly.
23:12:17ldleworkAraq: any concern for vtable-backed concepts in that regard?
23:13:53*PMunch quit (Quit: leaving)
23:13:55Araqldlework: yeah, but the vtable is seen as a "backup" solution, most of the time concepts embrace static binding
23:14:48ldleworkAraq: is that feature in devel? No one seems to know its status beyond the documentation.
23:15:29Araqno, it's not. we're paying zahary to implement it though.
23:15:56ldleworkAraq: It seems like it will be a very powerful feature indeed.
23:38:50krux02Araq: when you have any complicated types where you think offsetof could be hard to implement, new it would be the right time to show them
23:39:18krux02I was a bit surprised to see, that enums have an alignment of 2 no matter what the size is
23:40:39*Matthias247 quit (Read error: Connection reset by peer)
23:46:58*arnetheduck joined #nim
23:56:07*alectic joined #nim
23:58:19*alectic is now known as alexdreptu
23:58:36*vlad1777d quit (Remote host closed the connection)
23:58:45*alexdreptu is now known as alectic
23:59:27*vlad1777d joined #nim