00:01:12 | vikaton | is LLVM considered a programming language? |
00:03:07 | def- | llvm ir is an intermediate language: https://en.wikipedia.org/wiki/Intermediate_language |
00:06:22 | * | johnsoft quit (Ping timeout: 256 seconds) |
00:06:42 | * | johnsoft joined #nim |
00:08:37 | vikaton | def-, the compiled C from Nim looks pretty intermediate to me :/ |
00:09:25 | vikaton | oh wait |
00:09:35 | vikaton | C is an intermediate language according to wikipedia |
00:09:54 | reactormonk | :D |
00:10:07 | vikaton | w0w |
00:10:16 | vikaton | learn something new everyday :D |
00:24:05 | * | bassa quit (Read error: Connection reset by peer) |
00:24:27 | * | bassa joined #nim |
00:28:40 | * | CryptoToad quit (Quit: Leaving) |
00:33:56 | * | saml_ quit (Ping timeout: 246 seconds) |
00:35:20 | * | bassa quit (Read error: Connection reset by peer) |
00:35:53 | * | bassa joined #nim |
00:37:16 | * | mtj_ quit (Remote host closed the connection) |
00:40:40 | * | mtj_ joined #nim |
00:41:09 | * | mtj_ quit (Remote host closed the connection) |
00:41:20 | * | bjz joined #nim |
00:41:31 | * | mtj_ joined #nim |
00:44:05 | * | vendethiel joined #nim |
00:59:46 | dhasenan | I wish I understood the things that lead to the Nim C++ backend emitting TNimType records for wrapped types. |
01:04:40 | * | xificurC quit (Remote host closed the connection) |
01:05:10 | * | xificurC joined #nim |
01:05:14 | * | vendethiel quit (Ping timeout: 245 seconds) |
01:06:16 | * | kumul joined #nim |
01:08:06 | Araq | dhasenan: will tell you tomorrow. |
01:08:10 | Araq | good night. |
01:09:48 | dhasenan | o/ |
01:10:33 | * | milosn quit (Ping timeout: 256 seconds) |
01:11:20 | kumul | how do they manage to make such a dull dull game? #legendofzelda #allofthem |
01:12:49 | * | vendethiel joined #nim |
01:17:27 | * | strcmp1 quit (Quit: Leaving) |
01:17:59 | * | strcmp1 joined #nim |
01:19:45 | * | nande joined #nim |
01:33:45 | * | vendethiel quit (Ping timeout: 240 seconds) |
01:37:49 | * | Crocodick quit (Ping timeout: 246 seconds) |
01:49:25 | reactormonk | pigmej, how exactly do I get company to run? Doesn't seem to call my company-nim |
01:52:33 | * | ddl_smurf quit (Quit: ddl_smurf) |
01:53:27 | * | milosn joined #nim |
01:55:30 | * | dddddd quit (Ping timeout: 265 seconds) |
02:00:16 | * | jbomo quit (Ping timeout: 256 seconds) |
02:06:46 | * | jbomo joined #nim |
02:07:23 | * | darkf joined #nim |
02:19:31 | * | vendethiel joined #nim |
02:32:45 | * | pregressive joined #nim |
02:41:24 | * | PABLO joined #nim |
02:41:36 | * | PABLO left #nim (#nim) |
02:43:02 | * | iznogoodd joined #nim |
02:46:09 | * | BitPuffin|osx quit (Ping timeout: 240 seconds) |
02:53:12 | * | Demon_Fox quit (Quit: Leaving) |
03:09:37 | * | wb quit (Ping timeout: 264 seconds) |
03:29:58 | * | pregressive quit (Remote host closed the connection) |
03:34:29 | * | vendethiel quit (Ping timeout: 256 seconds) |
03:43:29 | * | Demon_Fox joined #nim |
03:48:25 | * | intra joined #nim |
03:54:37 | * | taesoo quit (Ping timeout: 264 seconds) |
04:05:10 | Varriount | vikaton: Writing a compiler backend that emits LLVM IR code would be challenging, but not impossible. |
04:06:14 | fowl | Its not too diff than c |
04:06:17 | Varriount | I had a look at the language specification page today, and I suspect that the most challenging aspect would be understanding the IR language sufficiently. |
04:11:27 | Varriount | fowl: http://qr.ae/7X7Eej |
04:11:41 | Varriount | Silly people will be silly. |
04:12:52 | fowl | Obv troll |
04:12:53 | ozra | Shut him with a benchmark.. |
04:13:33 | Varriount | "Waah Nim doesn't have safety things like bounds checking" -> "Waah Nim's safety things make programs slow" |
04:13:40 | Varriount | -_- |
04:14:08 | fowl | If its not a troll its someone with no manners |
04:17:33 | reactormonk | wow, that website is cancer compared to stackoverflow |
04:18:12 | Varriount | reactormonk: And yet, since people use it, we have to do our best to reply |
04:22:32 | strcmp1 | haters gonna hate |
04:24:45 | * | johnsoft quit (Ping timeout: 244 seconds) |
04:25:49 | * | johnsoft joined #nim |
04:42:18 | * | Demon_Fox quit (Quit: Leaving) |
04:46:15 | * | Demon_Fox joined #nim |
04:52:25 | * | ozra quit (Ping timeout: 246 seconds) |
04:52:47 | * | johnsoft quit (Ping timeout: 276 seconds) |
04:53:38 | * | johnsoft joined #nim |
04:58:11 | reactormonk | Varriount, hmmm |
04:58:51 | Varriount | reactormonk: ? |
04:59:28 | reactormonk | Varriount, don't like it but I kinda see your argument |
04:59:35 | Varriount | reactormonk: For what? |
04:59:48 | reactormonk | Varriount, using quora |
05:00:41 | Varriount | reactormonk: Look at it like this - if *we* don't answer on there, someone else likely will. |
05:02:01 | * | johnsoft quit (Ping timeout: 250 seconds) |
05:02:28 | * | johnsoft joined #nim |
05:13:12 | reactormonk | and they'll bullshit around. |
05:19:59 | TEttinger | output LuaJIT source code, if they say it's slow blame Mike Pall |
05:20:11 | TEttinger | it's what I'm doing :P |
05:26:06 | * | ddl_smurf joined #nim |
05:34:14 | avsej | flaviu, how to install this options module? https://github.com/flaviut/nre/commit/9576bc087d20e8e5cacb9cd92c635d3f9efaf0a7 |
05:34:20 | * | ddl_smurf quit (Quit: ddl_smurf) |
05:34:26 | avsej | nre 1.0.0 does not work without it |
05:35:25 | * | endragor joined #nim |
05:35:58 | avsej | oh, it is part of the language now :) |
05:47:10 | * | bjz quit (Read error: Connection reset by peer) |
06:02:07 | * | gokr_ joined #nim |
06:02:30 | * | pmbauer joined #nim |
06:03:44 | * | nande quit (Remote host closed the connection) |
06:27:04 | * | Matthias247 joined #nim |
06:33:34 | * | vikaton quit (Quit: Connection closed for inactivity) |
06:37:45 | * | gokr_ quit (Read error: Connection reset by peer) |
06:51:09 | gokr | Varriount: Fixing the Linux64 slave... sorry about that |
06:51:39 | * | Matthias247 quit (Read error: Connection reset by peer) |
06:51:50 | * | Andris_zbx joined #nim |
06:51:51 | * | no_name quit (Ping timeout: 258 seconds) |
06:51:51 | * | devzerp quit (Ping timeout: 258 seconds) |
06:59:43 | * | devzerp joined #nim |
07:00:31 | * | no_name joined #nim |
07:03:39 | * | jbomo quit () |
07:06:04 | * | juturna quit (Quit: Page closed) |
07:10:05 | * | vendethiel joined #nim |
07:10:12 | * | endragor_ joined #nim |
07:10:39 | * | endragor_ quit (Read error: Connection reset by peer) |
07:10:59 | * | endragor_ joined #nim |
07:12:10 | * | endrago__ joined #nim |
07:12:30 | * | endragor_ quit (Read error: Connection reset by peer) |
07:13:47 | * | endragor quit (Ping timeout: 256 seconds) |
07:16:55 | gokr | https://news.ycombinator.com/item?id=9599500 |
07:21:10 | gokr | Varriount: Linux64 builder restarted. |
07:24:09 | * | endrago__ quit (Remote host closed the connection) |
07:24:48 | * | endragor joined #nim |
07:33:38 | * | endragor quit (Remote host closed the connection) |
07:36:22 | * | vendethiel quit (Ping timeout: 252 seconds) |
07:44:55 | * | kumul quit (Read error: Connection reset by peer) |
07:58:40 | * | BlaXpirit joined #nim |
07:59:52 | * | ddl_smurf joined #nim |
08:04:32 | avsej | what is the best http client for nim at the moment? |
08:06:26 | dtscode | httpclient |
08:07:15 | * | vendethiel joined #nim |
08:18:28 | avsej | dtscode, but it does not keep connection socket open, right? |
08:18:40 | * | dtscode shrugs |
08:19:30 | avsej | and there no alternative? |
08:19:38 | * | dtscode shrugs |
08:19:46 | avsej | okay, thanks |
08:20:16 | Araq | avsej: there is also a wrapper for curl? |
08:22:58 | avsej | essentially for my needs will be enough http parser + tcp socket, because the server software is known |
08:25:33 | * | endragor joined #nim |
08:28:37 | * | vendethiel quit (Ping timeout: 264 seconds) |
08:30:06 | * | endragor_ joined #nim |
08:30:20 | * | endragor quit (Ping timeout: 272 seconds) |
08:33:33 | avsej | is there caas integration for emacs? nim-mode very dumb. it cannot even indent properly :( |
08:34:20 | Araq | pretty sure there is caas integration but caas doesn't tell the editor when to indent |
08:44:15 | * | Trustable joined #nim |
08:48:36 | * | Ven joined #nim |
09:05:56 | * | ingsoc joined #nim |
09:14:48 | * | IronY is now known as sadasd |
09:15:09 | * | sadasd is now known as IronY |
09:15:46 | * | ReverTro joined #nim |
09:16:07 | * | IronY is now known as sdasdasd |
09:16:55 | * | ekarlso quit (Quit: WeeChat 0.4.3) |
09:18:10 | * | sdasdasd is now known as IronYU |
09:18:12 | * | IronYU is now known as IronY |
09:20:39 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:20:40 | * | IronY is now known as sadasd |
09:20:47 | * | sadasd is now known as IronY |
09:21:38 | * | ReverTro quit (Quit: Page closed) |
09:23:42 | * | vendethiel joined #nim |
10:07:02 | * | superfunc joined #nim |
10:10:29 | * | Jehan_ joined #nim |
10:13:16 | * | vendethiel quit (Ping timeout: 256 seconds) |
10:13:42 | * | coffeepot joined #nim |
10:13:56 | * | coffeepot quit (Client Quit) |
10:14:15 | * | coffepot joined #nim |
10:30:34 | * | vendethiel joined #nim |
10:35:35 | avsej | is there something similar to reactivex in nim? |
10:37:44 | strcmp1 | i dont know what that is, is it similar to asyncdispatch? |
10:37:46 | * | xcombelle joined #nim |
10:38:50 | avsej | yes, but reactivex is also somewhat standartized API which allows to work with data flows |
10:39:39 | avsej | there is even visualization for its operators http://rxmarbles.com/ |
10:40:50 | * | superfunc quit (Ping timeout: 246 seconds) |
10:42:50 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:51:32 | * | sepisoad joined #nim |
10:53:35 | * | Demon_Fox quit (Quit: Leaving) |
10:54:09 | * | vendethiel quit (Ping timeout: 240 seconds) |
10:55:01 | * | banister joined #nim |
10:55:30 | Araq | Jehan_: https://gist.github.com/Araq/b40932a30b9dbb824364 :-) |
10:56:07 | * | vikaton joined #nim |
10:56:09 | TEttinger | avsej: what the hell is debounce? |
10:56:26 | TEttinger | that marble thing makes very little sense, nor does the name |
10:57:48 | avsej | TEttinger, debounce can be used for throttling. http://reactivex.io/documentation/operators/debounce.html |
10:58:39 | Jehan_ | Araq: I'm just scared about what pinnedSpawn may be. :) |
10:58:44 | vikaton | Varriount: I replied |
10:58:57 | Jehan_ | But in principle it looks very Erlang-y. |
10:59:39 | Araq | it's a ~10 line hack in the compiler |
11:00:15 | Araq | but it completely sucks for lots of reasons |
11:00:55 | Jehan_ | Heh. :) |
11:01:01 | Araq | however it produces "the" for "readme.txt" which seems the correct result |
11:05:56 | * | IronY is now known as davesdsd |
11:06:12 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
11:07:25 | * | davesdsd is now known as IronY |
11:08:49 | Araq | Jehan_: one problem (among many) is that this solution doesn't mark the spawning proc as 'locks: x' |
11:09:16 | Araq | so we have no deadlock detection |
11:09:37 | Jehan_ | Araq: Yeah. That's why I'd basically instrument proc calls to do the necessary bookkeeping. |
11:10:33 | Araq | but that's rather easy to fix, pinnedSpawn could get a bit more compiler magic |
11:10:44 | Araq | to produce a 'locks' effect |
11:11:12 | * | IronY is now known as sdsdsadasdasdweo |
11:11:13 | * | bjz joined #nim |
11:11:17 | * | sdsdsadasdasdweo is now known as IronY |
11:11:33 | Araq | we could even produce 'locks: x' where x is the thread ID if known at compile-time and 'locks: unknown' otherwise |
11:12:17 | Araq | or make that a separate parameter for pinnedSpawn |
11:12:18 | Jehan_ | I'm just not sure what the point is; it doesn't look like a solution that's viable in the long term and it seems to lack flexibility. |
11:12:56 | * | superfunc joined #nim |
11:13:28 | * | Ven joined #nim |
11:14:45 | * | Kingsquee quit (Quit: Konversation terminated!) |
11:15:20 | Araq | I'm not sure either, I'm playing. |
11:20:05 | * | Ven quit (Read error: Connection reset by peer) |
11:21:09 | coffepot | can I get the name of a typeDesc easily? |
11:22:19 | * | mtj_ quit (Remote host closed the connection) |
11:22:35 | Araq | coffepot: typetraits.name |
11:22:51 | coffepot | Araq tyvm :) |
11:23:20 | * | mtj_ joined #nim |
11:42:20 | * | NimBot joined #nim |
11:48:42 | vikaton | pong dom96 |
11:48:59 | dom96 | pong? Did I ping you? |
11:49:30 | vikaton | oh whoops, typo |
11:49:36 | * | kokozedman joined #nim |
11:49:50 | vikaton | dom96, how can I get user input parameters in the irc module? |
11:50:08 | dom96 | what do you mean? |
11:50:12 | kokozedman | hey guys, in the slots/signal for Nim library (https://github.com/fowlmouth/signals.nim/blob/master/src/signals.nim), there is a "generic" keyword... |
11:50:13 | * | Jehan_ quit (Quit: Leaving) |
11:50:22 | kokozedman | can anyone tell me where can I find-out more about it? |
11:50:29 | vikaton | dom96, like !say [param] |
11:50:37 | vikaton | and the bot sends back [param] |
11:50:37 | kokozedman | can't any use of that keyword in the manual |
11:51:44 | kokozedman | it uses something like: HasSlots* = generic X |
11:52:30 | Araq | kokozedman: it's deprecated. instead look for 'concept' |
11:53:02 | dom96 | vikaton: You have to parse that yourself. |
11:53:06 | kokozedman | Araq, ok, thanks |
11:53:19 | vikaton | dom96, yeah I know, but I'm not sure how |
11:53:33 | vikaton | Ruby uses regex, should I do something similar? |
11:53:49 | dom96 | nah |
11:53:50 | dom96 | use http://nim-lang.org/docs/parseutils.html |
11:54:04 | dom96 | var i = skipUntil(msg, Whitespace) |
11:54:20 | dom96 | msg[i .. ^1] |
11:54:20 | coffepot | encountered my first name conversion problem, had a type SQLColumnType and it kept saying it was ambiguous. Turns out there was an SQL_COLUMN_TYPE in odbcsql - ofc doing find didn't find it :) We have a nimgrep thing don't we? |
11:54:34 | coffepot | * convention not conversion |
11:54:38 | Araq | yep |
11:55:01 | Araq | I use it all the time, works much better than grep anyway. ymmv. |
11:55:12 | coffepot | where do I get it, is it a nimble package? |
11:55:32 | Araq | you already have it in nim/bin |
11:55:50 | coffepot | ah cool, ta :) also googled and got help too :3 |
11:58:53 | * | gokr_ quit (Remote host closed the connection) |
11:59:06 | * | gokr_ joined #nim |
12:01:05 | * | wb_ joined #nim |
12:02:05 | * | banister joined #nim |
12:05:45 | vikaton | Error: tabulators are not allowed |
12:05:50 | vikaton | what exactly does that mean |
12:06:11 | def- | vikaton: use spaces for indentation, not tabs |
12:08:43 | vikaton | o |
12:10:01 | * | BitR quit (Ping timeout: 255 seconds) |
12:11:48 | vikaton | def-, will Nim accept tab anytime soon? |
12:13:10 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:15:13 | vikaton | no wait |
12:17:14 | def- | vikaton: i don't think so, but if you really need them you could do this: https://www.reddit.com/r/programming/comments/34ep78/nim_programming_language_0110_released/cqugfl3 |
12:18:22 | vikaton | def-, are those replacements like templates? |
12:19:38 | dom96 | vikaton: just use spaces :) |
12:26:37 | def- | vikaton: you can read about them here: http://nim-lang.org/docs/filters.html |
12:33:05 | * | superfunc joined #nim |
12:34:33 | * | wb_ quit (Ping timeout: 240 seconds) |
12:37:08 | vikaton | nice |
12:39:22 | * | OnO joined #nim |
12:42:37 | OnO | Araq: hi, I see you closed my ticket about ((pure)) :> Are considering some more general optimization techniques to Nim? |
12:43:12 | OnO | I can see Nim has dead code elimination, but I think we would need to have dead store elimination in fact that would help with my particular case and maybe the others |
12:43:41 | OnO | also I wish to know what is you general opinion of which optimizations should be taken by Nim and which should be taken by C compiler |
12:44:39 | OnO | since C compilers have very mature optimizers, and don't see the reason Nim shouldn't provide some hints for them, eg. "const" or "pure" functions attributes |
12:44:39 | Araq | well I dunno about "general opinion" but stuff that's affected by Nim's effect system should all be done in the Nim compiler |
12:44:55 | OnO | let's ditch effect system for the moment |
12:45:08 | OnO | but think of dead store elimination |
12:45:13 | OnO | C compilers can do that |
12:45:15 | OnO | already |
12:45:15 | Araq | I don't like fragile mappings from .noSideEffect to pure or const |
12:45:33 | OnO | no no, me neither, I don't want to convince you about that |
12:45:57 | Araq | and last time I checked the C compilers they were all very bad at effect inference |
12:45:59 | OnO | I just want to think if we should introduce some new pragmas that are directly mapped to C compiler const & pure |
12:46:30 | Araq | there are lots of things Nim can do that C cannot |
12:46:36 | Araq | or LLVM for that matter. |
12:46:54 | Araq | for instance detecting that a seq doesn't escape and can be put onto the stack |
12:47:55 | OnO | I am absolutely aware of that, but this is very high level optimization, the Q is whether you want also introduce some really low level stuff, like dead store elimination |
12:48:12 | OnO | but this isn't really trivial I guess |
12:48:34 | Araq | escape analysis give you dead store elimination for free, I think. |
12:49:52 | OnO | is it? does nim have some concept of unused variables? or variables wrote once but never read? |
12:50:03 | OnO | if yes that would be cool |
12:50:03 | * | gokr_ quit (Read error: Connection reset by peer) |
12:50:03 | * | Jehan_ joined #nim |
12:51:36 | OnO | you know the whole thing is to make compiler to solve some stuff for you, not to solve it manually eg |
12:52:11 | OnO | stupid example log(x) * log(x) -> call log once since it is constant |
12:52:54 | Araq | a variable that has not sfUsed set is a dead store |
12:53:46 | OnO | is variable let x = getSomeValue() <- where getSomeValue has no sideeffect considered unused? |
12:54:59 | * | OnO has phone call, sorrry |
13:08:22 | * | superfunc quit (Ping timeout: 256 seconds) |
13:20:17 | * | superfunc joined #nim |
13:29:22 | * | gokr_ joined #nim |
13:33:04 | * | taesoo joined #nim |
13:36:52 | OnO | here's my problem https://gist.github.com/nanoant/32e51813b2e25d475721 |
13:37:19 | OnO | I expect one "got 1" got two, even with dead code elimination on |
13:37:42 | BlaXpirit | that's nuts |
13:38:00 | BlaXpirit | i don't know how you can possibly expect that |
13:39:45 | * | BitPuffin joined #nim |
13:39:55 | Araq | CSE is not hard to do in the compiler |
13:41:10 | * | superfunc quit (Ping timeout: 272 seconds) |
13:41:35 | * | BlaXpirit-UA joined #nim |
13:41:45 | OnO | BlaXpirit: because GCC and Clang, will optimize that |
13:42:28 | * | ozra joined #nim |
13:44:28 | ozra | Varriount: If you're around. I've made PR fixing the syntax highlighter Uni was missing all through. If you find it ok, I'd be happy if you could do required magic to update github's reference to it? |
13:44:30 | OnO | I am just trying convince Araq that we need to have this opt in Nim, eg. ((pure)) for RNG, and ((const)) for transcendental |
13:44:30 | * | BlaXpirit quit (Ping timeout: 252 seconds) |
13:50:14 | * | gokr_ quit (Read error: Connection reset by peer) |
13:51:21 | OnO | as a reference Rust had this discussion and the RFC was accepted: https://github.com/rust-lang/rfcs/blob/master/text/0911-const-fn.md |
13:55:27 | Araq | OnO: it's high time we get a real optimizer in the Nim compiler instead of hacking ever more and more pragmas that map 1 to 1 to GCC attributes cause we don't know better. |
13:56:45 | OnO | Araq: I do agree, if Nim is about to work using some other backends then we should rely on single backend |
13:57:49 | OnO | so going back to my example ... let x = variable should be eliminated, but not the call |
13:58:11 | OnO | wrong... it is eliminated, but call isn't |
13:58:23 | OnO | my point is the call should be eliminated |
13:58:35 | OnO | also many functions should be a subject for contact propagations |
13:58:40 | OnO | constant propagation |
14:00:44 | * | Jehan_ quit (Read error: Connection reset by peer) |
14:00:47 | OnO | so I'd love to see Nim extension that "func" to be actually stronger version of .noSideEffect. ((pure)) counterpart, where no writes anywhere are accepted |
14:01:15 | OnO | and extension of "const" keyword for constant functions... |
14:01:34 | OnO | probably we would need also related pragmas for external API such as math.h |
14:02:09 | * | Jehan_ joined #nim |
14:02:10 | OnO | then Nim when removing dead stores can also remove calls to all "func" (aka ((pure))) |
14:02:32 | OnO | and when doing constant folding it can take use of ((const)) functions, such as all math functions |
14:02:32 | Araq | strong "func" is coming. cannot promise it for version 1, but 'spawn' pretty much dictates what 'func' should look like |
14:03:58 | OnO | that's why I'd go for C compiler fallback for the moment until Nim gets own optimizer ;) |
14:04:53 | OnO | I know you don't like this, but it would be just temporary |
14:06:50 | OnO | the problem with using Nim for general calculation & math is following... modern C++ cmath does not use math.h, but in fact they directly map to __builtin_func |
14:07:29 | OnO | also most of math functions are marked with C++ constexpr |
14:08:20 | OnO | so basically going trough C++ compiler gives you real benefit in terms of constant propagation |
14:08:56 | Araq | compiler/vmops.nim |
14:09:21 | Araq | we can evaluate 'ln' at compiletime too |
14:09:47 | * | xet7 joined #nim |
14:17:20 | * | yglukhov joined #nim |
14:19:37 | * | kumul joined #nim |
14:21:48 | avsej | flaviu, you didn't update nimble file https://github.com/flaviut/nre/blob/master/nre.nimble#L11 |
14:24:45 | * | banister joined #nim |
14:29:34 | OnO | oops... TSymFlag has already 32 flags :( |
14:33:18 | Araq | OnO: you can use .codegenDecl already to annotate stuff with ((pure)) and ((const)) |
14:36:54 | OnO | good point, nice to know ! |
14:37:02 | * | pregressive joined #nim |
14:38:47 | vikaton | someone just posted this: http://www.reddit.com/r/programming/comments/37gnxw/nim_on_llvm_vs_c/ |
14:38:55 | * | BitR joined #nim |
14:39:05 | vikaton | damn |
14:39:13 | vikaton | 165 |
14:41:21 | * | synthmeat quit (Quit: WeeChat 1.3-dev) |
14:43:17 | * | Jehan_ quit (Read error: Connection reset by peer) |
14:43:20 | * | synthmeat joined #nim |
14:46:49 | * | Jehan_ joined #nim |
14:46:49 | * | Jehan_ quit (Client Quit) |
14:47:06 | * | Jehan_ joined #nim |
14:47:50 | * | milosn joined #nim |
14:48:22 | * | CrossCode joined #nim |
14:49:50 | * | TEttinger quit (Ping timeout: 264 seconds) |
14:51:02 | dom96 | Seems people really want to talk about Nim http://www.reddit.com/r/programming/comments/37grbp/we_just_switched_from_rust_to_nim/ |
14:51:38 | * | Jehan_ quit (Ping timeout: 264 seconds) |
14:52:50 | * | bluenote joined #nim |
14:54:40 | bluenote | dom96: I'm just trying to learn more about nimble |
14:54:54 | dom96 | hey bluenote |
14:55:02 | * | Jehan_ joined #nim |
14:55:27 | bluenote | one question, is this supposed to work: Requires: "nim >= 0.10.3, nim-stringinterpolation#e0746e3" |
14:55:29 | Jehan_ | dom96: I'm honestly not sure if this post is good or bad for Nim. The ycombinator one, I mean. |
14:55:48 | bluenote | where e0746e3 is a commit hash? |
14:55:58 | bluenote | (I tried the full hash as well) |
14:56:23 | dom96 | Jehan_: I would say it's good. |
14:56:40 | dom96 | That said, it did make it to r/programmingcirclejerk too |
14:57:11 | dom96 | bluenote: You need a space before the # IIRC |
14:57:57 | dom96 | oh no wait, you don't. |
14:57:57 | bluenote | with a space it tries to parse a range (FAILURE: Unable to parse dependency version range: Unexpected char in version range: #) |
14:58:01 | dom96 | That should work |
14:58:06 | dom96 | What happens without a space? |
14:58:16 | bluenote | without the space I get: fatal: Couldn't find remote ref e0746e3e184185e2cf8309b14b1ca207f31f1d41 |
14:58:39 | dtscode | Ummmm... Nim does have corporate backing... |
14:58:56 | dom96 | bluenote: Does `git checkout e0746e3` work in your git repo? |
15:00:05 | bluenote | yes |
15:00:50 | bluenote | let's see if I can do it manually in the tmp_... dir |
15:03:34 | bluenote | strange: I have a folder /tmp/nimble_14278 which contains a subfolder nim-stringinterpolation_<HASH> |
15:03:41 | bluenote | but this folder is empty |
15:04:31 | * | yglukhov quit (Read error: Connection reset by peer) |
15:05:06 | * | yglukhov joined #nim |
15:05:32 | bluenote | or rather: It has a .git but it looks like a fresh "git init" with a remote set |
15:06:41 | dom96 | This is what Nimble does: https://github.com/nim-lang/nimble/blob/master/src/nimblepkg/download.nim#L57 |
15:06:43 | bluenote | and I can in fact run "git pull origin master" successfully in this tmp subfolder |
15:06:45 | dom96 | Perhaps it's yet again incorrect |
15:08:22 | bluenote | thanks, I'll just try step by step -- looks like the first two steps are fine |
15:08:36 | * | taesoo quit (Remote host closed the connection) |
15:10:57 | * | Jehan_ quit (Read error: Connection reset by peer) |
15:11:04 | * | JehanII joined #nim |
15:12:59 | * | JehanII is now known as Jehan_ |
15:14:01 | bluenote | I ran the steps manually assuming the arguments were branch="" and tip=true, and all seems to work manually |
15:16:23 | dom96 | try branch="e0746e3e" |
15:19:23 | * | CrossCode quit (Quit: Page closed) |
15:20:54 | * | BlaXpirit-UA quit (Quit: Quit Konversation) |
15:21:23 | * | Tennis joined #nim |
15:21:23 | * | Tennis quit (Changing host) |
15:21:23 | * | Tennis joined #nim |
15:21:31 | bluenote | yep, emulating the steps with branch="e0746e3e" will lead to the call "git fetch origin --depth 1 e0746e3e" |
15:21:38 | * | pregressive quit (Remote host closed the connection) |
15:21:42 | * | yglukhov quit (Ping timeout: 265 seconds) |
15:21:42 | bluenote | and this produces "fatal: Couldn't find remote ref e0746e3e" |
15:22:39 | * | BlaXpirit joined #nim |
15:23:33 | * | endragor quit (Ping timeout: 265 seconds) |
15:24:44 | bluenote | so maybe it syntax for "Require" should contain a branch and an (optional) hash? |
15:26:10 | * | superfunc joined #nim |
15:26:44 | * | darkf quit (Quit: Leaving) |
15:27:29 | bluenote | btw: Requires: "nim-stringinterpolation#master" leads to "fatal: A branch named 'master' already exists.", failing probably in the checkout step |
15:29:56 | * | gokr quit (Ping timeout: 246 seconds) |
15:30:30 | * | superfunc quit (Ping timeout: 258 seconds) |
15:31:52 | * | bluenote quit (Ping timeout: 246 seconds) |
15:33:28 | * | gokr_ joined #nim |
15:34:29 | * | Andris_zbx left #nim ("Ex-Chat") |
16:00:01 | * | pregressive joined #nim |
16:01:51 | * | gokr joined #nim |
16:02:11 | * | bluenote joined #nim |
16:06:28 | * | superfunc joined #nim |
16:07:11 | dom96 | bluenote: Report an issue on github for it I guess. |
16:08:57 | bluenote | ok |
16:12:29 | * | vendethiel joined #nim |
16:13:00 | vikaton | someone needs to fix the email box in the Nim forum |
16:13:08 | vikaton | it wont accept [email protected] |
16:14:03 | * | coffepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
16:14:13 | dom96 | vikaton: Working on that as we speak. |
16:14:30 | vikaton | oh lol |
16:22:10 | vikaton | I always see pcwalton say something about Nim and unsafety in HN threads like those |
16:23:17 | * | brson joined #nim |
16:24:35 | * | sepisoad quit (Ping timeout: 256 seconds) |
16:25:43 | vikaton | hey brson |
16:27:16 | brson | vikaton: hey hey! |
16:27:35 | brson | how's nim today? |
16:28:21 | vikaton | Seems pretty good, but I'm new to Nim so I can't really say |
16:33:02 | * | brson quit (Read error: Connection timed out) |
16:33:18 | * | brson joined #nim |
16:36:37 | * | vendethiel quit (Ping timeout: 265 seconds) |
16:40:04 | vikaton | how can I check that a string starts with "foo" |
16:44:29 | * | wb_ joined #nim |
16:45:03 | Jehan_ | import strutils; echo str.startsWith("foo") |
16:50:22 | * | vendethiel joined #nim |
16:54:26 | vikaton | o |
16:55:37 | * | gokr quit (Quit: Leaving.) |
17:05:55 | * | dom96 quit (Changing host) |
17:05:55 | * | dom96 joined #nim |
17:12:00 | * | superfunc quit (Ping timeout: 244 seconds) |
17:14:53 | * | Arturo joined #nim |
17:15:31 | * | Arturo quit (Client Quit) |
17:15:48 | * | yglukhov_ joined #nim |
17:18:48 | * | Arturo joined #nim |
17:19:02 | * | Arturo quit (Read error: Connection reset by peer) |
17:20:28 | OnO | can you please explain use of callsite() ? |
17:22:38 | * | Arrrrr joined #nim |
17:23:54 | * | boopisaway is now known as boop |
17:24:57 | * | BitPuffin quit (Ping timeout: 265 seconds) |
17:24:58 | * | gokr_ quit (Read error: Connection reset by peer) |
17:26:18 | * | gokr_ joined #nim |
17:26:23 | * | gokr_ quit (Client Quit) |
17:26:50 | * | gokr_ joined #nim |
17:44:02 | * | filcuc joined #nim |
17:56:45 | Jehan_ | OnO: You mean? |
17:57:09 | * | Matthias247 joined #nim |
17:57:33 | Jehan_ | If you have a macro foo(x: untyped) and call foo(0), for example, it'll return Call(Ident("foo"), IntLit(0)) |
17:59:30 | * | brson quit (Quit: leaving) |
17:59:42 | * | filcuc quit (Ping timeout: 252 seconds) |
18:00:10 | OnO | but what's the benefit of it? I can guess that callsite is Call(Ident("foo"), x) for any x passed |
18:00:15 | OnO | or I am missing sthing |
18:00:47 | Jehan_ | OnO: llineinfo() for error reporting, for example. |
18:04:18 | OnO | hmm... I wonder if it was possible to get whole statement macro was invoked in |
18:04:40 | Jehan_ | I don't think that's possible right now, and I'd like that, too. :) |
18:04:44 | OnO | eg. whole: for x in macro: block, not just call(ident(x)...) |
18:05:15 | OnO | yeah, I can think of some new PR ;P |
18:06:53 | Araq | going up in the AST produces an insane language |
18:07:06 | Araq | so it's restricted to callsite() |
18:07:17 | Araq | which goes up 1 level, not more. |
18:12:12 | reactormonk | ozra, close #2820? |
18:17:03 | ozra | Yes, I definitely think so. I made an issue in Nimble for "require semver", and the other part of it belongs to #2019. The rest of the suggestions I made are moot. |
18:17:46 | ozra | (where moot = rubbish ;) |
18:17:56 | reactormonk | ozra, then close it. |
18:18:47 | ozra | Aha, I can do that? Hehe. On it. |
18:19:03 | reactormonk | yeah, the creator should be able to close |
18:20:27 | ozra | I've been working too much within corporate walls, so haven't used github too much yet. Done. |
18:22:24 | * | davidhq joined #nim |
18:25:12 | * | jubalh joined #nim |
18:31:39 | * | Jesin quit (Quit: Leaving) |
18:33:01 | * | kumul quit (Ping timeout: 265 seconds) |
18:34:27 | * | Jesin joined #nim |
18:37:38 | * | kumul joined #nim |
18:45:01 | * | fizzbooze joined #nim |
18:46:51 | * | shodan45 joined #nim |
18:56:31 | * | superfunc joined #nim |
19:00:56 | * | superfunc quit (Ping timeout: 252 seconds) |
19:06:43 | * | strcmp1 quit (Ping timeout: 255 seconds) |
19:10:33 | * | davidhq quit (Quit: Textual IRC Client: www.textualapp.com) |
19:10:53 | * | strcmp joined #nim |
19:11:09 | * | strcmp is now known as strcmp1 |
19:11:27 | * | strcmp1 quit (Client Quit) |
19:11:49 | * | strcmp1 joined #nim |
19:24:30 | * | jubalh quit (Quit: Leaving) |
19:24:54 | * | Arrrrr quit (Quit: WeeChat 1.2) |
19:25:54 | * | vbtt_ joined #nim |
19:27:26 | * | ChrisMAN quit (Remote host closed the connection) |
19:37:05 | avsej | is it possible specify dependecies for task in nake? |
19:38:25 | * | ChrisMAN joined #nim |
19:41:21 | avsej | found runTask() |
19:44:34 | * | filcuc joined #nim |
19:53:02 | * | fizzbooze quit (Ping timeout: 276 seconds) |
20:03:37 | * | xificurC quit (Remote host closed the connection) |
20:06:25 | * | kokozedman quit (Ping timeout: 264 seconds) |
20:08:01 | * | xcombelle quit (Remote host closed the connection) |
20:08:46 | * | xificurC joined #nim |
20:12:25 | * | gokr_ quit (Quit: IRC for Sailfish 0.9) |
20:12:43 | * | gokr_ joined #nim |
20:18:34 | * | jbomo joined #nim |
20:19:54 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:24:01 | * | kokozedman joined #nim |
20:33:51 | * | mal`` quit (Ping timeout: 248 seconds) |
20:35:09 | * | mal`` joined #nim |
20:37:43 | avsej | are there examples of clients written using asyncnet? |
20:38:15 | dtscode | clients for what |
20:38:15 | * | gokr_ quit (Read error: Connection reset by peer) |
20:39:15 | avsej | in general |
20:39:28 | avsej | for this chat server for example http://nim-lang.org/docs/asyncnet.html#examples-chat-server |
20:39:38 | dtscode | There is the IRC module and the httpclient module |
20:39:53 | avsej | and it is using asyncnet? |
20:39:56 | dtscode | Yep |
20:40:07 | dtscode | I can't think of anything else off the top of my head. but there might be some other stuff on the stdlib page |
20:40:16 | * | banister joined #nim |
20:41:28 | avsej | dtscode, i think irc module will be enought for now. thank you |
20:41:45 | dtscode | np |
20:42:26 | * | kokozedman quit (Ping timeout: 276 seconds) |
20:46:57 | * | dtscode quit (Ping timeout: 240 seconds) |
20:51:44 | * | TEttinger joined #nim |
20:55:08 | * | gokr joined #nim |
21:06:06 | * | filwit joined #nim |
21:06:07 | * | Gonzih quit (Read error: Connection reset by peer) |
21:06:23 | * | Gonzih joined #nim |
21:07:30 | vikaton | some people like Nim too much that it may hurt Nim's image |
21:09:11 | vbtt_ | wat? |
21:09:40 | OnO | can I humbly ask WTF is this? https://github.com/Araq/Nim/pull/2807 pull request, reverting changes previously accepted, no explanation given why reverting |
21:10:09 | Araq | OnO: I told him to do it. |
21:10:29 | Araq | we don't like git submodules and Jehan_ gave the reasons in some bug report |
21:10:48 | OnO | okay, but wouldn't it be nicer to at least give some word of explanation or the reference |
21:10:54 | OnO | to the bug report you mentioning |
21:10:56 | Araq | of course |
21:11:05 | OnO | I mean in the commit itself |
21:11:23 | Araq | yeah i agree |
21:11:33 | * | Mat4 joined #nim |
21:11:56 | vikaton | vbtt_ some people may like Nim too much that they start bashing on other languages in public threads, like Rust |
21:12:58 | OnO | Araq: okay, so what was the reason again ;) ? |
21:14:15 | filwit | fowl: i enjoyed reading you Runtime Interfaces code |
21:14:37 | Araq | oh hi filwit |
21:14:43 | filwit | hi |
21:14:49 | Araq | channel has too many users |
21:14:55 | filwit | oh damn |
21:15:10 | filwit | most i've seen so far |
21:15:18 | OnO | kick'em, I am first to go, asking bad quesstions, hehe |
21:15:20 | strcmp1 | yeah Araq, stop developing such a popular language |
21:16:53 | * | Matthias247 quit (Read error: Connection reset by peer) |
21:17:07 | OnO | okay whatever, if you don't like submodules you need to ensure latest csources compile any version back at least always latest stable |
21:17:37 | iznogoodd | submodules are the devil |
21:17:47 | filwit | fowl: your `drawableVT` proc in the implementation section is similar to what I've been playing around with in Nim recently.. I'm not sure what other languages are capable to doing that, but I'm glad someone is illustrating it's power with useful code. |
21:18:09 | OnO | ye ye.. let's get back to dark ages, everything we don't know is evil |
21:18:09 | boop | using the $project.nim.cfg stuff, is there a way to only use certain flags on certain OSes? (windows) |
21:18:27 | filwit | generics + {.global.} + static-overloading = awesomeness for meta-programming |
21:18:30 | iznogoodd | i know them, but 99% of the time they are not good to use |
21:18:39 | Araq | boop: @if windows: --fooo @end |
21:18:46 | boop | ah! thanks |
21:19:21 | OnO | Araq: changing subject, why semStmtList calls semExpr for each stmt in the list not semStmt ? |
21:19:25 | Araq | OnO: I don't think that's really important given that the releases ship with the generated C code |
21:20:51 | OnO | yeah, unless you want to build some older version to check for regressions for example, then you need to figure out proper csource for the build, because clone gets you latest (that may be broken) |
21:22:24 | * | intra quit (Ping timeout: 258 seconds) |
21:23:28 | Araq | OnO: semStmt is pretty much the same as semExpr due to the expr/stmt unification |
21:24:08 | OnO | semStmt->semExprNoType->semExpr+with some extra check |
21:25:20 | vikaton | 166 is the most I've seen |
21:27:02 | * | filcuc quit (Ping timeout: 264 seconds) |
21:28:18 | * | shodan45_ joined #nim |
21:28:33 | * | Demon_Fox joined #nim |
21:28:41 | Araq | OnO: then it's a good question |
21:29:50 | dom96 | Somebody wanna implement user count tracking in NimBot? |
21:30:11 | * | shodan45_ quit (Client Quit) |
21:30:35 | * | shodan45_ joined #nim |
21:30:43 | * | shodan45 quit (Ping timeout: 255 seconds) |
21:30:44 | * | shodan45_ quit (Client Quit) |
21:30:45 | OnO | Araq: okay, I know... it is for last expr is a proc result |
21:34:30 | * | shodan45 joined #nim |
21:35:18 | vikaton | The ignorance... http://www.quora.com/Is-Nim-really-that-unsafe/answer/Adam-Helps/comment/10762060?__snids__=1177736503&__nsrc__=2#comment10797063 |
21:37:29 | dom96 | Quora is really not the place to be arguing about this... |
21:37:49 | vikaton | dom96: which is why I keep telling him to discuss this elsewhere |
21:37:56 | dom96 | vikaton: good |
21:39:38 | filwit | glad you responded the way you did, vikaton. Someone needed to chime in on that. |
21:39:49 | * | dddddd quit (Ping timeout: 245 seconds) |
21:40:09 | * | vendethiel quit (Ping timeout: 265 seconds) |
21:41:07 | * | ingsoc quit (Ping timeout: 265 seconds) |
21:41:54 | vikaton | I try to be as rational as possible with ignorant people |
21:42:41 | strcmp1 | as a language becomes popular, i think crap like this becomes more and more common. sad and frustrating. |
21:43:09 | vikaton | tbh I don't know why Rust and Nim have to be so hostile to each other |
21:43:19 | vikaton | and it comes from BOTH sides |
21:43:47 | vikaton | die-hard Rusteceans about Nim's "terrible unsafety" |
21:43:48 | filwit | well, even though he's being abrasive and started with an untrue statement (eg, Nim is "unsafe").. he does also have a point: Eg, Rust's nil-checks are "free" and Nim's aren't (which is why they're disabled by default for release builds.. which is great for many domains like games/simulations/etc). |
21:44:01 | vikaton | and die-hard Nim bashing Rust's syntax and speed |
21:44:08 | * | zahary quit (Read error: Connection reset by peer) |
21:44:25 | * | zahary joined #nim |
21:45:08 | filwit | but Rust's non-null/Option<> design is not entirely as "free" as Nim's when it comes to mental overhead, IMO |
21:46:19 | vikaton | Rust's philosophy is really cool, but It's a PITA to develop in imo |
21:46:26 | filwit | so there's a trade off.. and the most ideal solution depends on your project |
21:46:55 | vikaton | + Nim has pretty amazing features and clean syntax |
21:47:15 | * | vendethiel joined #nim |
21:47:18 | filwit | yeah |
21:48:06 | vikaton | Nim is now starting to gain traction, so the best thing we needs is just facts right now |
21:48:45 | gokr | Both are cool, I get nausea whenever I look at Rust - but that's fine, I appreciate any new language :) End of story. And oh, we should get that FAQ done - and just point at it. |
21:49:04 | vikaton | ^ +1000 |
21:49:16 | vikaton | Araq, anyway we can get that together as a community? |
21:49:17 | filwit | gokr: yeah a FAQ for these things is a great idea |
21:49:39 | Mat4 | I think there isn't any advantage to take care of comparisons to languages like Rust |
21:50:46 | vikaton | Mat4, both of us dont want Nim vs Rust comparisons |
21:50:50 | Araq | filwit: the github wiki has a FAQ for anybody to improve |
21:51:00 | Araq | er vikaton |
21:51:06 | vikaton | but people persist to compare them |
21:51:11 | dom96 | https://github.com/Araq/Nim/wiki/Unofficial-FAQ |
21:51:15 | vikaton | and if Nim seems like it was favorable |
21:51:20 | dom96 | It's fine to compare them. |
21:51:25 | vikaton | Rust respond to "fix" the author |
21:51:25 | gokr | Araq: We would need to compile a few of these questions - and also link that FAQ more properly from the homepage. |
21:51:52 | dom96 | They should be compared, but in a civilised manner. |
21:52:03 | vikaton | dom96, very hard to do now :/ |
21:52:28 | vikaton | Ok, who is up to debunk the "Nim is terribly unsafe" myth in the FAQ? :P |
21:52:56 | dom96 | I think the "Unofficial FAQ" should be merged with the website. |
21:53:20 | dom96 | We need something which updates the website for us when it changes in the repo. |
21:53:36 | vikaton | ^ |
21:54:00 | * | gsingh93 joined #nim |
21:54:19 | filwit | how much time will that actually save you though? |
21:54:24 | filwit | doesn't sound like a good trade |
21:54:29 | * | ingsoc joined #nim |
21:54:42 | dom96 | generating the website is a PITA |
21:54:50 | dom96 | the website should at the very least be separated from the main repo |
21:54:51 | flaviu | filwit: It'd be very easy to implement. |
21:54:52 | filwit | koch website? |
21:55:38 | filwit | flaviu: yeah i guess so |
21:56:07 | flaviu | Oh, filwit! I redesigned nim-by-example! https://nim-by-example.github.io/ |
21:56:19 | dom96 | filwit: That will generate all the docs, and likely fail on Windows. |
21:56:50 | dom96 | flaviu: I really wish it would use more of my screen |
21:57:01 | dom96 | Also, bullet points are too close to the ToC |
21:57:10 | filwit | flaviu: looks good.. though I don't see much difference. Also (sorry to crit), the code width is still pretty narrow |
21:57:36 | dom96 | (Thank you for working on it though, nice job as always, just trying to give you some constructive feedback.) |
21:57:56 | filwit | dom96: er.. i meant `koch web` (which avoids docs... and if it fails on Windows isn't that a bug?) |
21:58:29 | dom96 | filwit: koch web generates docs too |
21:58:44 | dom96 | filwit: it is, but fixing it is always low priority. |
21:58:45 | filwit | really? i thought there was one which avoided it... |
21:59:15 | iznogoodd | max-width: 720px; wtf |
21:59:35 | iznogoodd | its like 1/10 of my screen |
21:59:36 | filwit | anyways, it doesn't take long either way.. isn't it just `koch website` -> ftp/upload new files -> done? |
21:59:57 | filwit | oh right.. breaks on windows.. |
21:59:59 | filwit | nevermind |
22:00:23 | flaviu | iznogoodd: Can I see a screenshot? Real pixels != css pixels. |
22:01:12 | iznogoodd | this isnt 1990 lol |
22:01:19 | filwit | flaviu: what resolution is your monitor? |
22:01:25 | dom96 | You should use a % |
22:01:29 | flaviu | filwit: 1920x1080 |
22:02:04 | dom96 | filwit: That's already too much work |
22:03:24 | Araq | filwit: dom96 is not up to date with how the website is generated |
22:03:38 | * | yglukhov__ joined #nim |
22:03:43 | Araq | it's easy enough to add FAQ answers but I'm too busy |
22:03:49 | iznogoodd | its easy to see, use CTRL+SHIFT+M in firefox |
22:03:59 | iznogoodd | and input 1920x1080 |
22:04:03 | iznogoodd | you will see what it looks like |
22:04:11 | iznogoodd | not even half the screen |
22:04:14 | dom96 | Araq: Hence why this needs to be automatic. |
22:04:24 | dom96 | If you're too busy to do it then it's not "easy enough". |
22:04:50 | filwit | iznogoodd: who are you talking too? |
22:04:53 | Araq | 'koch website' is too hard for you? |
22:05:05 | iznogoodd | flaviu:^ |
22:05:37 | filwit | iznogoodd: he just said he had a 1080p resolution, so I don't understand your comments. He can obviously see his own design. |
22:06:01 | flaviu | iznogoodd: Yep, the goal is to keep it around 80 characters/line. |
22:06:14 | iznogoodd | aka 1990 |
22:06:17 | * | yglukhov_ quit (Ping timeout: 256 seconds) |
22:06:17 | iznogoodd | ok |
22:06:19 | filwit | flaviu: bad idea for a website, IMO |
22:06:34 | iznogoodd | really bad idea |
22:06:40 | iznogoodd | never ever use fixed width |
22:06:51 | filwit | flaviu: but of course, that's your prerogative |
22:07:10 | flaviu | What's the better alternative? |
22:07:12 | Mat4 | use flex containers! |
22:07:22 | iznogoodd | for what? max-width: 100%.. |
22:07:27 | filwit | no.. |
22:07:30 | filwit | that's bad too |
22:07:43 | dom96 | Araq: how does 'koch web' work nowadays? |
22:07:46 | filwit | code does not wrap with new lines |
22:07:55 | flaviu | https://imgur.com/0M58U5G looks terrible. |
22:08:10 | filwit | and choosing a set width is good... i just don't think keeping to the 80 colum is good for displaying code |
22:08:19 | dom96 | flaviu: That actually looks nicer to me. |
22:08:31 | dom96 | You just need the width to be higher. |
22:08:37 | iznogoodd | at least keep it centered if you max width it |
22:08:44 | flaviu | iznogoodd: That's a good idea. |
22:08:45 | dom96 | that too |
22:08:49 | gokr | fowl: What's the status of your interfaces stuff btw? |
22:08:55 | gokr | fowl: Just curious. |
22:09:24 | filwit | gokr: https://bitbucket.org/fowlsoft/interfaces/wiki/Home |
22:09:30 | vikaton | who is down to add that submission to the FAQ qith me? |
22:09:39 | gokr | filwit: I know, just ... curious about status |
22:10:21 | filwit | gokr: okay. He has a fully working code sample in the last page of that is why i posted it |
22:10:31 | filwit | gokr: also, he doesn't seem to be around right now |
22:10:46 | dom96 | vikaton: Are you looking for help in writing it? |
22:10:59 | gokr | filwit: I looked at it a few weeks back. I know he is busy playing with other stuff :) |
22:11:11 | * | vendethiel quit (Ping timeout: 250 seconds) |
22:12:54 | filwit | Nim's meta-programming is really cool.. does anyone else know of a language where I can do: template eventList(T:typedesc, eventName:static[string]): var seq[T] = var result = newSeq[T](); result |
22:12:55 | filwit | ? |
22:13:51 | filwit | that overloads by parameter, so eventList(Foo, "update") and eventList(Foo, "render") generate two separate lists |
22:14:04 | iznogoodd | flaviu: imo centering + moving the menu out of the text max-width would be ok |
22:14:23 | flaviu | iznogoodd: Sure, sounds good. |
22:14:25 | Mat4 | filwit: yes |
22:14:32 | filwit | lisp? |
22:14:35 | vikaton | dom96, I don't feel qualified to answer tbh |
22:15:14 | dom96 | vikaton: I feel the same way. |
22:15:20 | filwit | Mat4: the real question is not "does another language with that capability exist" but also "does it exist and compete with Nim's performance" |
22:15:34 | vikaton | dom96, how so? you are like a Nim veteran |
22:15:42 | Mat4 | yes, Forth |
22:16:11 | filwit | wait really? isn't that really old? |
22:16:15 | filwit | lemmy look it up |
22:16:22 | dom96 | vikaton: I'm not up to date on the issue. Would need to read up on it but I'm trying to make everyone happy by adding password resets to the forum. |
22:16:45 | vikaton | ok |
22:16:50 | vikaton | ping Varriount |
22:16:58 | Mat4 | filwit: Forth is one of the ealier languages beside Lisp |
22:17:30 | filwit | is Forth still popular in some industry? |
22:17:42 | Mat4 | it is |
22:17:56 | filwit | if it has that sort of capability and it truly competes with Nim in performance, why isn't it more used? |
22:18:21 | * | pregressive quit (Remote host closed the connection) |
22:18:37 | filwit | er.. wait.. if this is it's syntax.. the answer is obvious |
22:18:40 | iznogoodd | flaviu: imo it looks good with body {margin: auto} #sidebar { position: fixed; top: 0; left: 0} |
22:19:08 | dom96 | filwit: Factor is the modern Forth. |
22:19:18 | Mat4 | filwit: Forth is widly used. It's only you don't see many mentions because common usage is for military and space applications |
22:19:22 | dom96 | It's not very popular though. |
22:19:26 | iznogoodd | flaviu: (for desktop at least) |
22:19:50 | filwit | Mat4, dom96: ah, okay. Thanks for the info. |
22:19:50 | dom96 | But it's actually rather nice. |
22:21:27 | * | boop is now known as boopisaway |
22:22:06 | fowl | gokr: it needs a few safety checks |
22:22:14 | gokr | Forth is strong (or was at least) close to the metal. |
22:22:36 | gokr | Its a cool language, it was the first language I saw where my own constructs were first class. |
22:22:47 | gokr | fowl: cool |
22:23:50 | gokr | IIRC OpenFirmware has a forth shell :). And postscript is basically a forth IIRC. |
22:24:59 | filwit | bbl |
22:25:06 | dom96 | I wrote an interpreter for a Forth-like (well, more Factor-like) language in Nim a loooong time ago. |
22:26:11 | dom96 | it was fun |
22:26:12 | gokr | Btw, Jones Forth was a cool one. |
22:26:12 | Mat4 | Forth is extensible without any limitations. If someone want an ADA like type system, just load a library like StrongForth |
22:26:25 | Mat4 | for example |
22:26:32 | gokr | Mat4: I discovered Rebol the last few days btw |
22:26:42 | Mat4 | Rebol has some Forth roots |
22:26:50 | gokr | And Red, the new open source implementation. Yes, I know :) |
22:27:16 | gokr | It uses a similar "free form" syntax, but isn't stack based though. |
22:27:31 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
22:27:43 | gokr | Mat4: http://www.red-lang.org |
22:28:01 | gokr | Pretty slick stuff actually. |
22:28:02 | Mat4 | very impressive |
22:28:51 | gokr | I found it quite funny btw, how Slava Pestov first wrote JEdit and then... said "bye bye" and created Factor instead. |
22:29:54 | gokr | Mat4: Which forth are you using? I mean, of course you have "your own" ;) - but still? |
22:30:06 | gokr | (Forth is known for its balkanization) |
22:30:09 | Mat4 | mainly retro |
22:30:13 | gokr | Ah, cool |
22:30:14 | dom96 | gokr: and then he got hired by Google and disappeared. |
22:30:21 | gokr | Oh, really? |
22:30:26 | dom96 | yep. |
22:30:41 | gokr | Seems to happen to a lot of talented guys. |
22:31:06 | * | vendethiel joined #nim |
22:31:07 | * | dtscode joined #nim |
22:31:39 | gokr | Mat4: Red might be interesting to a Forth fella. It shares lots of similar strengths and philosophy, but sure is a bit friendlier on the eyes IMHO. |
22:32:38 | gokr | (Red and Rebol is ... like Lisp + Forth + Self kinda) |
22:33:26 | gokr | I remember when I downloaded and built Retro for the first time. I hit make (or whatever it was) and... I thought I did something wrong, because it didn't do anything. |
22:33:40 | gokr | Then I realized that sure, it had compiled Retro in like... 0.1 seconds or something. |
22:33:45 | Mat4 | I think lisp was an influence to Rebol 8however the same is true for Forth) |
22:33:49 | * | superfunc joined #nim |
22:34:23 | gokr | Yes, Rebol is homoiconic - so definitely Lispish. But syntax is free form "words" like Forth but also has blocks. |
22:34:58 | gokr | Evidently Carl (who created Rebol) also worked with Alan Kay and Dan Ingalls using Smalltalk for a while at Apple, so... a bit of Smalltalk too. |
22:35:08 | gokr | Its the Carl that also created Amiga OS :) |
22:36:28 | * | BlaXpirit quit (Quit: Quit Konversation) |
22:38:26 | * | superfunc quit (Ping timeout: 264 seconds) |
22:40:10 | Mat4 | I see mainly one disadvantage of Red: It depend on some kind of garbage collector (which is bad some system programming tasks) |
22:40:30 | ozra | I've never coded Forth and the likes. But the Amiga OS , my heart warmed up immediately ;) |
22:41:50 | gokr | Mat4: Well, Red is actually two different languages. |
22:41:55 | gokr | Mat4: http://static.red-lang.org/Red-SFD2011-45mn.pdf |
22:42:20 | gokr | So Red = Rebol basically. And "Red/System" is a lower level subset matching C kinda. It has no GC. |
22:43:01 | gokr | ozra: I loved the C64, the Amiga 500 I mostly gamed on. Was too young to get into C etc. |
22:43:24 | gokr | Mat4: Almost got myself a Jupiter Ace. Almost :) |
22:43:48 | Mat4 | gokr: thanks, I see |
22:44:54 | gokr | Mat4: The Red guys are churning out code, they secured half a million dollars too. So will be fun to see where it goes. |
22:45:06 | ozra | Yeah, I loved the C-64 too. I started coding on the ABC-80, then the C-64, then on to the A500. The A500 is still my favourite though. Had like the perfect balance of gfx and sound caps to be beatuiful, and still leave most of the beuaty to your imagination, haha. Coded mostly Basic+Asm combo back then. Then E, then C. |
22:45:48 | gokr | I coded a lot on the C64, even made custom hw for it. But mostly gamed on the A500, but it was a beautiful system. |
22:46:35 | ozra | Deffo. Autoconfig in hardware, so sweet, the PC was a nightmare after switching, manually confing IRQ's and shit. |
22:46:36 | Mat4 | an ABC-80. That means you probably are from sweden |
22:46:50 | ozra | Mat4: Yup. |
22:46:52 | gokr | Yup, he is. Me too :) |
22:47:02 | * | yglukhov__ quit (Quit: Be back later ...) |
22:47:09 | ozra | Bought it in a barn sale for 50:- B-) |
22:47:52 | Mat4 | I know the ABC 80 basic, which was a sophisticated, half compiling dialect |
22:48:04 | Mat4 | if I remember correctly |
22:48:50 | ozra | Mat4: I was too young to thing about such things then - I just read manuals and coded it. Had no tape station for it, so I had to program things from scratch each time I started it. Kind of good in retrospect :) |
22:49:22 | Mat4 | oh |
22:50:05 | ozra | Mat4: You swede too? Or just stumbled upon an ABC80? |
22:50:30 | * | kumul quit (Ping timeout: 276 seconds) |
22:50:35 | gokr | Are there any Swedes here today?? Mumblemumble... there is always one isn't there! Go stand in the back. |
22:50:55 | ozra | haha |
22:51:11 | * | gokr loves Monty Python |
22:51:34 | ozra | Yup |
22:52:40 | ozra | gokr: still got your links btw, eager to check them, but too busy atm. Nim-hacking ;) |
22:54:59 | Mat4 | ciao |
22:55:12 | * | Mat4 quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
22:55:14 | * | vendethiel quit (Ping timeout: 252 seconds) |
23:00:51 | * | vendethiel joined #nim |
23:01:03 | fowl | filwit: interfaces need a few safety checks before they're ready to be used |
23:02:34 | * | ingsoc quit (Ping timeout: 252 seconds) |
23:05:03 | * | Trustable quit (Remote host closed the connection) |
23:05:09 | fowl | X.f(...) We have to be sure f isn't generic here, that f has no varargs and that it follows the same form as other f's, a rule like 'x + x is int' we can immediately see breaks this x shows up twice, so this + can't be used |
23:06:11 | gokr | Could we throw them into experimental or something? |
23:06:21 | gokr | Get some more eyes on them |
23:06:35 | gokr | future I mena |
23:06:37 | gokr | mean |
23:06:38 | * | Siecje joined #nim |
23:08:21 | fowl | idc |
23:10:04 | fowl | Once the vtable structure is set up, vtables can come from anywhere, for ex hot loaded from some dll |
23:11:53 | filwit | fowl: i see, that's cool |
23:17:23 | filwit | it would be interesting to see if there could be a hybrid approach to concepts and interfaces... maybe Araq is already building something like this (i think i remember him mention it before.. but not sure). That basically concepts that can be used as type members (which is 'invisibly' a VT ptr or proc tuple) |
23:18:33 | filwit | actually, i suppose your interfaces model is basically that.. nevermind |
23:18:40 | * | kumul joined #nim |
23:22:37 | * | vendethiel quit (Ping timeout: 265 seconds) |
23:24:57 | * | gsingh93 quit (Ping timeout: 265 seconds) |
23:33:02 | vikaton | I wonder if you can write a whole new language based off of Nim templates |
23:35:54 | dtscode | vikaton: You can create DSL's in nim, yes |
23:36:02 | dtscode | See jester ( I think that counts as one) |
23:41:05 | vikaton | mhm |
23:41:21 | vikaton | anyone here familiar with github api? |
23:42:06 | dtscode | Its generally better to just ask your question |
23:45:58 | * | eldamar joined #nim |