00:07:08 | krux02 | shashlick, I use established editors to write simple tests |
00:07:20 | krux02 | I bound f8 to open /tmp/scratch.nim |
00:07:27 | * | maskedlua8 joined #nim |
00:07:32 | krux02 | I put my simple tests in there |
00:07:38 | * | maskedlua8 quit (Remote host closed the connection) |
00:12:15 | * | craigger quit (Ping timeout: 244 seconds) |
00:12:54 | * | craigger joined #nim |
00:14:54 | * | craigger_ joined #nim |
00:17:39 | * | craigger quit (Ping timeout: 252 seconds) |
00:21:06 | Tanger | noonien, o7 |
00:21:25 | Tanger | Oops, wrong channel. Hi though XD |
00:24:41 | * | PrimHelios joined #nim |
00:25:25 | PrimHelios | I get the warning "Warning: 'matchIter' is not GC-safe as it calls 'mytest' [GcUnsafe2]" when compiling this code https://pastebin.com/NE2hfhmx anyone know what the issue is? |
00:26:12 | * | shenglong9 joined #nim |
00:31:56 | Tanger | PrimHelios, I think it could be that it's returning a literal string |
00:32:15 | Tanger | PrimHelios, https://stackoverflow.com/questions/49196841/warning-matchiter-is-not-gc-safe-as-it-accesses-x-which-is-a-global-using-g - Could be the same issue |
00:32:26 | Tanger | With a better explanation for sure :P |
00:34:09 | * | shenglong9 quit (Ping timeout: 252 seconds) |
00:36:37 | PrimHelios | I've read that one, and I'm not quite sure how I would apply that solution to this issue though |
00:36:50 | PrimHelios | I thought marking the proc as gcsafe would fix it, but I gues snot |
00:39:37 | PrimHelios | Ah, fixed it. The function declaration wasn't marked gcsafe and that was the issue |
00:45:27 | AlexMax | If I put a ref object into a sequence, I'm guaranteed that the addr of the object won't change out from under me, correct? |
00:45:32 | Tanger | Haha, that'll do it |
00:45:37 | AlexMax | unless I delete it from the sequence? |
00:46:08 | AlexMax | I can do `addr myseq[4]` and as long as the ref object isn't deleted from the sequence, I'm cool? |
00:59:06 | FromGitter | <kayabaNerve> Nim doesn't have an event based programming lib, right? |
00:59:08 | FromGitter | <kayabaNerve> More even |
00:59:21 | FromGitter | <kayabaNerve> *not even in the nimble-verse? |
01:08:49 | AlexMax | Yeah, I don't think that works ... just to test I ran setLen(seqs, 100) and got a sigsev |
01:09:25 | AlexMax | so I must be getting the location of the seq address, not the address of the object itself |
01:10:40 | AlexMax | and when it reallocates, poof |
01:11:36 | leorize | AlexMax: if you `addr` a `ref object`, you're getting the address of the address of the object |
01:14:11 | AlexMax | leorize: But if I remove the 'addr' and try and cram the object into a type property meant for a 'ptr Foo', the compiler complains that I supplied it a Foo and not a ptr Foo |
01:14:44 | leorize | ptr and ref are not compatible |
01:15:15 | FromGitter | <ephja> foo[x][].addr? |
01:15:42 | AlexMax | doesn't matter, if I change the type property to a ref Foo, it complains I didn't give it a ref foo |
01:16:05 | FromGitter | <ephja> [] to dereference |
01:16:09 | leorize | what're you trying to do? |
01:16:46 | AlexMax | Basically, I want four sequences that contain ref objects |
01:17:00 | AlexMax | And I want those sequences to "own" the objects |
01:17:03 | FromGitter | <ephja> and then you get an untraced pointer to the object pointer to by the ref, unless I got that wrong in case that's not what happens :-P |
01:17:12 | * | SenasOzys quit (Ping timeout: 250 seconds) |
01:17:16 | AlexMax | ephja [] is the wrong way, that's a derference, not a reference |
01:17:18 | FromGitter | <ephja> *pointed to |
01:17:56 | AlexMax | and I want objects in those sequences to be able to refer to other objects from one of the other sequences |
01:18:07 | leorize | AlexMax: this is not Rust, we don't "own" a ref :) |
01:18:25 | * | krux02 quit (Remote host closed the connection) |
01:18:30 | leorize | just assign the ref to a seq and the GC will know not to free it |
01:19:22 | AlexMax | Ownership is still a useful mechanism, though, even if it's not expressed through the type system (yet) |
01:19:57 | leorize | ownership only matters for non-GC environment |
01:19:59 | AlexMax | and I'm thinking of c++ |
01:20:39 | AlexMax | leorize: It does matter, because if I delete an object from one of the sequences, I don't want an errant reference from an object in one of the other sequences to keep it alive |
01:20:52 | AlexMax | It _should_ go away |
01:21:05 | leorize | then you're looking at ptr |
01:21:06 | leorize | not ref |
01:21:18 | AlexMax | which is what I already have ;) |
01:21:38 | leorize | ref will only be collected when no one use it anymore |
01:21:45 | AlexMax | these are my four objects |
01:22:00 | AlexMax | https://paste.ee/p/us2ed |
01:22:19 | AlexMax | The objects themselves are 'ref' which means they should always be allocated on the heap, which is what I want |
01:22:28 | AlexMax | but the references to other objects are all 'ptr' |
01:22:47 | AlexMax | and I have four sequences, one for every type of object |
01:23:13 | AlexMax | https://paste.ee/p/pgsrD |
01:23:48 | FromGitter | <rayman22201> why don't you want ref all the way down? you want to allow dangling pointers? |
01:24:43 | leorize | AlexMax: if you want to make sure it's deleted everywhere, the best way is to use `ref` and make sure a `ref` is not kept somewhere |
01:25:13 | leorize | using `ptr` won't be wise. If any part of your code touch the freed `ptr`, you're toast |
01:25:23 | AlexMax | wait a minute, my four sequences |
01:25:30 | AlexMax | they're var vertexes*: seq[Vertex] = @[] |
01:25:39 | FromGitter | <ephja> mmmm toast |
01:25:47 | AlexMax | do they need to be seq[ref Vertex] or something? |
01:26:17 | leorize | if you want to keep a `ref`, yes |
01:26:36 | AlexMax | Oh. I thought that 'ref object' magically made all uses of that object ref |
01:26:42 | AlexMax | or something |
01:26:48 | leorize | but shouldn't the object definition for Vertex and friends be `ref object` instead? |
01:27:03 | leorize | then you won't have to change the seq definition |
01:27:04 | AlexMax | They are |
01:27:10 | FromGitter | <ephja> but where does "ref object" appear? |
01:27:17 | leorize | AlexMax: from the paste, they aren't |
01:27:17 | FromGitter | <ephja> I don't see it |
01:27:22 | AlexMax | oh, sorry |
01:27:24 | AlexMax | my paste is out of date |
01:27:27 | AlexMax | silly me |
01:27:28 | AlexMax | sorry |
01:27:44 | AlexMax | https://paste.ee/p/UBINZ |
01:28:08 | leorize | you will want to remove `ptr` from Line |
01:28:29 | leorize | `ptr` in that case means "a pointer to a reference of an object" |
01:29:11 | AlexMax | You mean from Sector, Vertex and Side definitions in Side and Line? |
01:29:28 | leorize | yes |
01:29:34 | FromGitter | <rayman22201> I don't think you want ptr anywhere in those defs |
01:31:00 | * | SenasOzys joined #nim |
01:33:55 | AlexMax | Okay, my program compiles and runs as long as I don't force my sequences to allocate |
01:34:08 | AlexMax | But if I allocate all of the sequence lengths to 100, the program still dies |
01:35:07 | FromGitter | <rayman22201> Are the objects always going to exist inside seqs? what if you keep indexes instead of refs? |
01:35:11 | * | dddddd quit (Remote host closed the connection) |
01:35:48 | AlexMax | I mean I _guess_ I could use indexes, but it makes accessing layers cumbersome |
01:36:12 | FromGitter | <rayman22201> it's actually a common pattern used in situations like this. |
01:36:34 | AlexMax | Yeah, if your language doesn't have pointers of any sort :P |
01:36:42 | AlexMax | But Nim isn't QBasic |
01:36:44 | AlexMax | :P |
01:36:56 | leorize | AlexMax: a program shouldn't die if you alloc 4 seq to len 100 |
01:37:01 | FromGitter | <rayman22201> no. Jonathan Blow talks about using it in Jai, and it's used in game programming often |
01:37:23 | FromGitter | <rayman22201> and Araq has a stream where he does it with Macros here: https://www.youtube.com/watch?v=EC9zCXlvY2k |
01:37:25 | Tanger | AlexMax: Can you post a stack trace from when you alloc the seq to 100? |
01:37:28 | AlexMax | leorize: It's not the alloc that kills it, it's that the alloc seems to break all the references |
01:37:40 | AlexMax | and when i try to use one of those references, the program goes boom |
01:37:48 | leorize | that's not possible |
01:38:05 | leorize | can you give us a toy example? |
01:38:35 | AlexMax | Okay, one sec |
01:43:25 | vivus | can I access a global variable inside a proc? |
01:43:33 | AlexMax | hrm, my toy example doesn't boom |
01:43:36 | leorize | vivus: you can |
01:43:46 | leorize | AlexMax: chances are you're accessing it wrong :P |
01:45:13 | AlexMax | How can I be accessing it wrong? |
01:45:39 | leorize | how're you using the `ref`s actually? |
01:45:55 | vivus | does nim use indentation as syntax? |
01:45:59 | AlexMax | wait a minute, I have a sneaky suspicon about something |
01:46:07 | leorize | vivus: yes, it does |
01:46:15 | FromGitter | <ephja> are the references null? |
01:46:23 | vivus | leorize: it's 2 spaces right? |
01:46:35 | AlexMax | yes, but I check for is nil |
01:46:45 | leorize | vivus: any amount, but have to be spaces |
01:47:01 | leorize | 2 spaces is widely used in Nim however |
01:47:29 | leorize | AlexMax: maybe try to run a debugger |
01:47:43 | AlexMax | ah |
01:47:45 | leorize | shouldn't the stacktrace give away where the bug occurs? |
01:47:54 | AlexMax | if isNil(line.back): |
01:47:59 | AlexMax | that's what is bugging out |
01:48:29 | leorize | too bad `not nil` is now experimental |
01:48:42 | AlexMax | ...but it only bugs out if I setLen the four sequences to 100 |
01:49:00 | AlexMax | If I leave the sequences alone, I get no crash |
01:49:26 | leorize | accessing nil is always undefined behavior |
01:49:42 | AlexMax | Well, the backside of a line is optional |
01:49:46 | leorize | although I'm suprised that `nilcheck` didn't catch it |
01:50:10 | AlexMax | if I were building this with pointers, I'd just use a nil pointer and be done with it |
01:50:15 | FromGitter | <ephja> is 'line' null? |
01:50:28 | AlexMax | shouldn't be |
01:50:33 | AlexMax | the line above it is for index, line in level.lines: |
01:50:41 | AlexMax | OH BUGGER |
01:50:52 | AlexMax | no wonder! |
01:50:59 | AlexMax | when i setLen to 100 |
01:51:07 | AlexMax | I'm iterating over those non-existant lines too |
01:52:03 | leorize | and that's why we need `not nil` |
01:52:11 | AlexMax | and that's where my null pointer dereference comes from I bet |
01:52:22 | AlexMax | man I'm a doofus |
01:52:29 | leorize | do you actually need Line to be a `ref object`? |
01:52:53 | AlexMax | leorize: I was hoping I could use the location of the object in memory as its 'hash' |
01:53:05 | leorize | you can |
01:53:18 | leorize | implement hash() for it |
01:53:22 | AlexMax | but for that to work, it needs to be heap-allocated |
01:53:39 | AlexMax | I don't ever want to accidentally allocate one of thsoe objects on the stack |
01:54:13 | AlexMax | or for it to move around in memory somehow |
01:54:31 | leorize | they sure won't move :) |
01:55:45 | AlexMax | Man, I have this uneasy feeling that wheN I changed all of my data structures, I'm now actually making copies of the objects everywhere, invisibly |
01:56:04 | vivus | how do I loop through each line in a file? |
01:56:15 | AlexMax | one way to find out |
01:56:35 | AlexMax | leorize: thanks for your time |
01:56:45 | AlexMax | even though it ended up being a pebkac |
01:57:05 | leorize | we all have those time, don't we? :) |
01:57:37 | leorize | vivus: use the lines() iterator https://nim-lang.org/docs/system.html#lines.i,string |
01:58:26 | vivus | man, I tried getting nim.vim to work, but it does nothing. no autocomplete or gotodefinition either |
01:58:41 | AlexMax | vivus: vim compiled with python support |
01:58:42 | AlexMax | ? |
01:59:08 | vivus | AlexMax: system vim. ubuntu 18.04 |
02:00:23 | leorize | nim.vim autocomplete requires nim idetools, which is deprecated long ago |
02:00:27 | * | SenasOzys quit (Ping timeout: 240 seconds) |
02:00:43 | vivus | leorize: yeah I saw that issue and was wondering if it was fixed |
02:01:31 | leorize | you can try to merge this to your tree https://github.com/zah/nim.vim/pull/73 |
02:02:08 | FromGitter | <ephja> consider trying nvim-nim with this patch https://github.com/baabelfish/nvim-nim/pull/51 |
02:02:23 | FromGitter | <ephja> the original author is nowhere to be seen though. time for a fork maybe |
02:03:59 | vivus | @ephja does nvim-nim support a vundle install? |
02:05:06 | leorize | it does |
02:05:49 | vivus | both of them don't seem to work though without using a patched (and untested) version |
02:06:00 | vivus | @ephja do you use nvim? |
02:06:45 | FromGitter | <ephja> hm ok. I just load plugins with packadd |
02:06:57 | vivus | you using neovim? |
02:07:01 | leorize | vivus: you need nimsuggest for autocomplete to work |
02:07:10 | vivus | leorize: I have that on my PATH |
02:07:35 | leorize | then probably you need neovim |
02:10:19 | FromDiscord | <treeform> Araq, looking into nimedit, git clone, compiled it... now I need to find all the DLLs. There needs to be a way to include binary dlls in nimble packages. |
02:12:48 | FromGitter | <kaushalmodi> Anyone knows of there's a Nim library that does line filtering from multi line text, interactively like this: https://github.com/peco/peco |
02:13:03 | FromGitter | <kaushalmodi> .. or something close? |
02:14:17 | FromGitter | <kaushalmodi> I'm working on a CLI app. In some use cases, the app spits out hundreds of lines prefix with an index and the user then needs to type the index manually to pick a line. |
02:14:31 | FromDiscord | <treeform> kaushalmodi, I have not seen anything like this. But I don't think its hard to make. |
02:14:57 | FromGitter | <kaushalmodi> It's not hard to make?! |
02:15:38 | FromGitter | <kaushalmodi> I glanced through the peco source code. I don't know Go, but the code base looks too complicated and too many lines. |
02:16:47 | FromGitter | <kaushalmodi> treeform: Can you give me pointers to what to need to learn to make something like peco. |
02:17:53 | FromGitter | <ephja> vivus: trying it again. now to see if I can get the symbol list to appear again |
02:18:14 | leorize | kausalmodi: |
02:18:23 | vivus | ill try 1 of the nim.vim PRs tomorrow |
02:18:27 | leorize | kaushalmodi: you need to learn ncurses |
02:19:42 | FromGitter | <kaushalmodi> Hmm, I know it only by name, using it in the ncdu app. But the peco app doesn't use ncurses. |
02:20:07 | FromGitter | <ephja> neomake integration works, except for neomake#configure#... |
02:20:22 | FromGitter | <kaushalmodi> leorize: You think it bakes in parts of that library? |
02:20:52 | leorize | Interactive TUI is usually made with ncurses |
02:20:58 | FromGitter | <ephja> nope, works now. lol |
02:21:17 | leorize | kaushalmodi: for scanning through lines, you can use pegs or regex |
02:23:49 | * | vivus quit (Remote host closed the connection) |
02:24:29 | FromDiscord | <treeform> kaushalmodi, I think I had a script that did almost this, let me find it. |
02:26:03 | FromGitter | <kaushalmodi> treeform: thanks |
02:26:45 | FromGitter | <kaushalmodi> leorize: I don't think ncurses would be needed. It's seems too heavyweight for only line filtering that I want. |
02:27:32 | leorize | oh you were only looking at line filtering, I thought you were looking at how to implement the app |
02:27:35 | FromGitter | <kaushalmodi> I had come across this awesome C CLI app (another of the many languages I don't know :)): https://github.com/p-gen/smenu/blob/master/smenu.c |
02:27:40 | FromDiscord | <treeform> Hmm I can't find it. It must be on my other computer. |
02:27:48 | FromGitter | <kaushalmodi> It doesnt seem to use ncurses |
02:27:51 | leorize | kaushalmodi: then PEGs and regexes are your friend on line filtering |
02:28:01 | FromDiscord | <treeform> kaushalmodi, I don't think its that hard, you can just do it with VT100 escape codes |
02:28:05 | FromDiscord | <treeform> https://www.csie.ntu.edu.tw/~r92094/c++/VT100.html |
02:28:11 | FromDiscord | <treeform> write a code to move down the line |
02:28:16 | FromDiscord | <treeform> print out what you need. |
02:28:20 | FromDiscord | <treeform> then move the cursor back |
02:28:28 | FromGitter | <kaushalmodi> treeform: oh man, you should have used git and pushed it somewhere, or blogged about it. :) |
02:28:41 | FromDiscord | <treeform> kaushalmodi, it was too simple to push |
02:32:16 | FromGitter | <kaushalmodi> I have played with cursor moving and line deletion. But what I want could be more involved. |
02:32:53 | FromGitter | <kaushalmodi> As I type, I want the list to reduce, and as I backspace, reduce the filtering chars, the list should expand again. |
02:33:10 | FromGitter | <kaushalmodi> See the peco demo. |
02:33:23 | leorize | again, ncurses is infamous for TUI if you don't want to implement your own library |
02:33:52 | leorize | it supports callbacks on events, which you could use to implement what you want |
02:35:07 | FromDiscord | <treeform> kaushalmodi, ill help you out, Ill write some thing give me a minute or 10 |
02:35:51 | FromGitter | <kaushalmodi> leorize: Based on the ncurses apps I have used, I know that ncurses can do it. It's just that I have 0 experience in C, and that would be a huge learning curve. I might just start understanding the peco and smenu projects and start converting one of them to Nim as I learn and find time. |
02:37:29 | FromGitter | <kaushalmodi> treeline: Thank you. I am not at my computer at the moment. So I'll get back to your example tomorrow. There is no hurry. |
02:38:10 | FromGitter | <kaushalmodi> This is a rough spec of what I am thinking.. |
02:38:53 | FromGitter | <kaushalmodi> echo "a\nb\nc" | nim_app |
02:39:43 | FromGitter | <kaushalmodi> In the Nim app, a readLine is continually monitoring the key inputs and updating the filtered display, till I hit Enter. |
02:39:55 | FromGitter | <kaushalmodi> If I type a, I see just "a" |
02:40:13 | FromGitter | <kaushalmodi> Then if I backspace and type "c", I see just see |
02:40:56 | FromGitter | <kaushalmodi> Here's the back story for anyone interested: https://github.com/kaushalmodi/ntodo |
02:41:17 | FromGitter | <kaushalmodi> Using Todoist API, I can now get a list of all my tasks. |
02:41:24 | FromGitter | <kaushalmodi> But there are hundreds of those. |
02:41:42 | FromGitter | <kaushalmodi> I can even delete a task, but there's no way to interactively select one. |
02:42:26 | FromGitter | <kaushalmodi> Right now, I list all, prefix with number line, scroll and find the task index I want to delete and then type that out. |
02:42:36 | FromGitter | <kaushalmodi> .. not very practical, and also error prone |
02:43:05 | FromGitter | <kaushalmodi> With this filtering applied, I can pass the multiline string to this filter |
02:43:32 | FromGitter | <kaushalmodi> And if I want to delete task "foo", I just type "foo" and hit Enter. Done. |
02:55:13 | FromDiscord | <treeform> This is what I have for you: kaushalmodi https://gist.github.com/treeform/516726cae2b7ffbd7a0aaa757595ac65 |
02:56:06 | FromDiscord | <treeform> I don't know about the whole UI part, but I got the auto complete part |
02:56:29 | FromDiscord | <treeform> if you are not on windows, you would need to replace the wgetche with linux version |
02:58:10 | FromGitter | <kaushalmodi> Yup, will hack with it. |
02:59:34 | FromGitter | <kaushalmodi> Hmm, Gitter app is acting up? I cannot see the last message thanking you and saying that I'll be trying this tomorrow. |
03:00:06 | FromDiscord | <treeform> I don't know??? |
03:00:15 | FromDiscord | <treeform> |
03:00:16 | FromDiscord | <treeform> https://cdn.discordapp.com/attachments/371759389889003532/484920326514540564/2018-08-30_19-58-47.mp4 |
03:00:21 | FromDiscord | <treeform> Here is a vid of it in action |
03:00:33 | FromDiscord | <treeform> sorry about the left side |
03:02:24 | * | genera joined #nim |
03:07:16 | * | genera quit (Remote host closed the connection) |
03:07:45 | FromGitter | <kaushalmodi> That looks very cool, and looks like it would work for my use case. I'll try that out with combination of taking in a multiline string and filtering it using nim-regex or something. Many thanks! |
03:10:40 | FromGitter | <kaushalmodi> treeform: On Windows, I use Licecap to record GIFs only from regions I manually select: https://www.cockos.com/licecap/ |
03:29:15 | * | cspar joined #nim |
03:36:39 | * | kapil___ joined #nim |
03:41:43 | * | noonien quit (Quit: Connection closed for inactivity) |
03:42:27 | FromGitter | <dlutton> anyone know any good free hosting solutions for a nim project? |
04:05:59 | FromDiscord | <treeform> dlutton, like github? |
04:06:38 | FromDiscord | <treeform> what are you hosting? |
04:06:49 | FromGitter | <dlutton> just a small app I made |
04:07:31 | FromGitter | <dlutton> which takes a post request and sends a response |
04:09:26 | * | thomasross quit (Remote host closed the connection) |
05:01:59 | * | miran joined #nim |
05:19:01 | * | nsf joined #nim |
05:59:47 | FromGitter | <mratsim> @rayman22201 I thought Jai was still in stealth mode |
06:19:05 | * | miran quit (Ping timeout: 244 seconds) |
06:38:06 | FromGitter | <kayabaNerve> I moved some code into a Nimble package. ⏎ Windows throws: ``` ⏎ Error: execution of an external compiler program 'gcc.exe -c -w -mno-ms-bitfields -DWIN32_LEAN_AND_MEAN -I.nimble\pkgs\secp256k1-0.1.0/secp256k1_wrapper -I.nimble\pkgs\secp256k1-0.1.0/secp256k1_wrapper/secp256k1 -I.nimble\pkgs\secp256k1-0.1.0/secp256k1_wrapper/secp256k1/src -DHAVE_CONFIG_H -IEmber/src/lib/Argon/include -g3 -O0 -gdwarf-3 -Os |
06:38:06 | FromGitter | ... -INim\lib -o Ember\build\nimcache\core.c.o Ember\src\lib\Argon/src/core.c' failed with exit code: 1 ⏎ ⏎ Nim\lib\system\excpt.nim:78:46: error: unknown type name 'TNimType' ... [https://gitter.im/nim-lang/Nim?at=5b88e24d9c71d363c153fdfb] |
06:38:37 | FromGitter | <kayabaNerve> Anyone here able to help? 0_o |
06:39:12 | * | couven92 quit (Read error: Connection reset by peer) |
06:39:40 | * | couven92 joined #nim |
06:40:06 | leorize | it would be better if you can give us a reproducible example |
06:40:50 | leorize | also, check your windows gcc version |
06:41:09 | FromGitter | <kayabaNerve> That's why I said what Linux did. |
06:41:37 | FromGitter | <kayabaNerve> https://github.com/EmberCrypto/BN |
06:42:09 | FromGitter | <kayabaNerve> There's the Nimble package. ⏎ Here's getNil: https://github.com/EmberCrypto/BN/blob/master/src/BN.nim#L136 |
06:43:29 | leorize | can you give me an example code that use this module and cause the error? |
06:45:14 | leorize | I tried a simple piece like this `import BN; echo getNil BN()` |
06:45:19 | leorize | no problem here |
06:48:37 | FromGitter | <kayabaNerve> It's a GCC error on Windows, and a upgraded Nim compiler on Linux |
06:48:38 | FromGitter | <kayabaNerve> Sorry |
07:03:02 | * | xet7 joined #nim |
07:03:53 | FromGitter | <mratsim> maybe a side effect due to the not nil changes? |
07:04:33 | FromGitter | <mratsim> try renaming the function, it might be that there is a catch-all on ìsNil` identifier (which would be a bug, it should only catch seq and strings) |
07:05:29 | * | norok2 joined #nim |
07:06:14 | FromGitter | <ephja> GCC 6.3 or a newer version? there was some code that wouldn't compile with the newest version |
07:08:50 | * | norok2 quit (Remote host closed the connection) |
07:10:08 | FromGitter | <Araq> @mratsim seems unlikely. |
07:10:24 | FromGitter | <Araq> yay websocket's interface changed, nothing compiles anymore |
07:10:24 | * | druonysus quit (Quit: No Ping reply in 180 seconds.) |
07:11:25 | * | ChickeNES21 joined #nim |
07:11:38 | * | norok2 joined #nim |
07:11:49 | * | druonysus joined #nim |
07:11:49 | * | druonysus quit (Changing host) |
07:11:49 | * | druonysus joined #nim |
07:12:21 | * | ChickeNES21 quit (Remote host closed the connection) |
07:13:24 | * | norok2 quit (Client Quit) |
07:14:09 | FromGitter | <ephja> what are you doing with ws? |
07:16:12 | FromGitter | <Araq> nothing, I am only updating Ormin to compile with Nim devel |
07:17:19 | * | norok2 joined #nim |
07:17:50 | FromGitter | <Araq> `Warning: escape is deprecated [Deprecated]` oh bah, that's it |
07:18:00 | FromGitter | <Araq> I'm gonna de-deprecate `escape` |
07:18:43 | FromGitter | <mratsim> btw, what’s left for 0.19? |
07:19:27 | FromGitter | <mratsim> I think the new runtime should be enabled for at least 1 version before v1.0 |
07:19:52 | FromGitter | <Araq> the new runtime is now spelt `--gc:destructors` |
07:20:10 | FromGitter | <Araq> and is off the critical path |
07:20:25 | FromGitter | <kayabaNerve> The Windows Nim compiler is before not nil; the Linux is a side effect. |
07:20:56 | FromGitter | <kayabaNerve> *Linux is after and a side effect. |
07:22:07 | FromGitter | <Araq> left for 0.19. well I'm checking code still compiles. |
07:24:29 | FromGitter | <Araq> Error: type mismatch: got <int literal(0)> but expected 'bool' |
07:24:47 | FromGitter | <Araq> gah, so this "VM turns bool into int" problem actually got worse, not better |
07:25:26 | * | norok2 quit (Remote host closed the connection) |
07:28:56 | * | Vladar joined #nim |
07:31:21 | * | PMunch joined #nim |
07:31:54 | * | norok2 joined #nim |
07:32:18 | * | norok2 quit (Client Quit) |
07:32:31 | FromGitter | <Araq> https://github.com/nim-lang/Nim/issues/7375 just got even higher priority... |
07:36:19 | FromGitter | <alehander42> yeah I hit that in one lib (and I think somebody hit it in zero-functional) |
07:36:51 | FromGitter | <alehander42> (the got int but expected bool) |
07:39:48 | * | eth25 joined #nim |
07:44:34 | * | eth25 quit (Remote host closed the connection) |
07:48:04 | FromGitter | <mratsim> enums are turned into int too |
07:49:46 | * | jjido joined #nim |
07:52:40 | PMunch | What a strange bug? |
07:57:31 | FromGitter | <mratsim> Artifact of the VM I guess, everything is an int |
07:57:37 | * | Guest74243 joined #nim |
07:58:10 | PMunch | Aah, that makes sense |
07:58:27 | * | Guest74243 quit (Remote host closed the connection) |
08:03:46 | * | gmpreussner_ joined #nim |
08:04:37 | * | gmpreussner quit (Ping timeout: 246 seconds) |
08:07:20 | FromGitter | <Araq> not really, but the VM's data structure is effectively untyped |
08:07:55 | FromGitter | <Araq> and when you run Nim code on a CPU it's the same, so there will always be restrictions like that |
08:08:11 | FromGitter | <Araq> but I'm hunting a real regression here because Ormin used to compile |
08:09:33 | * | jjido quit (Ping timeout: 252 seconds) |
08:24:53 | leorize | is there anyone with good windows knowledge around? |
08:26:23 | FromGitter | <Araq> hi |
08:26:44 | leorize | I was going to ask for help with this PR https://github.com/nim-lang/Nim/pull/8624 |
08:27:17 | leorize | the Windows code looks OK to me but the test doesn't pass :/ |
08:27:29 | leorize | but then again, I'm not a windows user :P |
08:32:21 | FromGitter | <Araq> thanks for reminding me |
08:47:30 | FromGitter | <mratsim> @Araq, isn’t it related to https://github.com/nim-lang/Nim/commit/361a2d830aca1959d3dbc15d13bea31f89fcd0e2? |
08:48:12 | FromGitter | <mratsim> i.e. when requires bool but we get “int” from the VM |
09:02:58 | FromGitter | <Araq> exactly, but the `when` condition must be `bool` |
09:05:52 | * | arecaceae quit (Remote host closed the connection) |
09:06:10 | * | arecaceae joined #nim |
09:09:54 | * | stefanos82 joined #nim |
09:10:33 | FromGitter | <mratsim> So it’s code relying on a bug, not exactly a regression ;) |
09:10:53 | FromGitter | <mratsim> bug is fixed, code is broken :P |
09:12:36 | FromGitter | <alehander42> is there a way to forbid creating nimfr_ for a single function |
09:14:03 | FromGitter | <alehander42> calling nimfr_ * |
09:16:06 | FromGitter | <mratsim> use a template? |
09:16:44 | FromGitter | <Araq> .push: stackTrace:off ? |
09:17:21 | FromGitter | <alehander42> @mratsim i really need it to be a separate function |
09:17:35 | FromGitter | <alehander42> @Araq ah this should be it, thanks |
09:23:11 | FromGitter | <Vindaar> @Araq @mratsim I've been wondering, is this https://github.com/nim-lang/Nim/issues/8029 also related to the "bool converted to int" problem? As in uint8 converted to int but not back. |
09:24:39 | FromGitter | <mratsim> yes |
09:25:16 | FromGitter | <mratsim> when you pass from compiletime to runtime you need to use `newLit` otherwise the type is not saved and becomes int |
09:26:31 | FromGitter | <mratsim> integers might be a bit more tricky, I remember at one point having to use `NimNode(kind: nnkInt8Lit, intVal: foo)` |
09:29:57 | FromGitter | <Vindaar> I see. Will try that with this example :) |
09:38:02 | * | nhandler5 joined #nim |
09:40:44 | * | nhandler5 quit (Remote host closed the connection) |
09:43:15 | FromGitter | <Araq> yeah it's basically unfixable in the near future. We don't have the type information, it needs to become `macro m(): RealTypeHere` |
09:43:32 | FromGitter | <Araq> so that the compiler can annotate the ASTs back properly |
09:57:56 | FromGitter | <Vindaar> A little unfortunate, but it's not that big of a deal I guess. Maybe it should be mentioned in the macros documentation though? |
09:58:27 | FromGitter | <Vindaar> And indeed, replacing the ```result = quote do: `r` ``` with `result = newLit(r)` makes it work in the example above |
09:59:19 | FromGitter | <Araq> @Vindaar yeah, but first you need to confirm my workaround works :-) |
10:00:09 | FromGitter | <Vindaar> oh no, it doesn't work :O |
10:00:35 | FromGitter | <Vindaar> ahh, wait |
10:00:37 | FromGitter | <Vindaar> I'm confused |
10:00:38 | FromGitter | <Vindaar> maybe |
10:01:35 | FromGitter | <Vindaar> Yes, it does work. In the issue I mentioned above there's a bug (?) in the sense that it converts the characters to integers (which might well be what the OP of that issue wanted) |
10:01:58 | FromGitter | <Vindaar> I was confused that I suddenly got the `ord` values of my numbers I put in my dummy `resources.bin` |
10:20:49 | * | dddddd joined #nim |
10:25:40 | * | kapil___ quit (Quit: Connection closed for inactivity) |
10:51:55 | * | spymasterd[m] quit (Remote host closed the connection) |
10:51:58 | * | endes[m] quit (Read error: Connection reset by peer) |
10:51:58 | * | SolitudeSF[m] quit (Read error: Connection reset by peer) |
10:51:58 | * | xomachine[m] quit (Read error: Connection reset by peer) |
10:51:59 | * | TheManiac[m] quit (Read error: Connection reset by peer) |
10:52:01 | * | toofly[m] quit (Remote host closed the connection) |
10:52:01 | * | jaens[m] quit (Remote host closed the connection) |
10:52:02 | * | unclechu[m] quit (Write error: Connection reset by peer) |
10:52:04 | * | syntonym[m] quit (Remote host closed the connection) |
10:52:04 | * | GitterIntegratio quit (Write error: Broken pipe) |
10:52:04 | * | Demos[m] quit (Write error: Connection reset by peer) |
10:52:04 | * | yglukhov[m] quit (Remote host closed the connection) |
10:52:04 | * | petersjt014[m] quit (Remote host closed the connection) |
10:52:05 | * | stisa[m] quit (Write error: Connection reset by peer) |
10:52:09 | * | narimiran[m] quit (Write error: Broken pipe) |
10:52:11 | * | zacharycarter[m] quit (Remote host closed the connection) |
10:52:11 | * | Miguelngel[m] quit (Remote host closed the connection) |
10:52:11 | * | gh0st[m] quit (Remote host closed the connection) |
10:52:12 | * | TheKing[m] quit (Remote host closed the connection) |
10:52:13 | * | zielmicha[m] quit (Remote host closed the connection) |
10:52:16 | * | sendell[m] quit (Read error: Connection reset by peer) |
10:52:16 | * | pqflx3[m] quit (Remote host closed the connection) |
10:52:17 | * | hitchhooker[m] quit (Write error: Connection reset by peer) |
10:52:17 | * | codevance[m] quit (Write error: Connection reset by peer) |
10:52:18 | * | Connor[m]1 quit (Write error: Connection reset by peer) |
10:52:18 | * | dyce[m] quit (Write error: Connection reset by peer) |
10:52:18 | * | macsek1911[m] quit (Remote host closed the connection) |
10:52:18 | * | bitstoppa[m] quit (Remote host closed the connection) |
10:52:20 | * | sg-james[m] quit (Read error: Connection reset by peer) |
11:00:02 | * | pqflx3[m] joined #nim |
11:12:28 | * | hitchhooker[m] joined #nim |
11:12:28 | * | gh0st[m] joined #nim |
11:12:29 | * | dyce[m] joined #nim |
11:12:29 | * | codevance[m] joined #nim |
11:12:29 | * | GitterIntegratio joined #nim |
11:12:29 | * | yglukhov[m] joined #nim |
11:12:29 | * | TheKing[m] joined #nim |
11:12:30 | * | Miguelngel[m] joined #nim |
11:12:30 | * | unclechu[m] joined #nim |
11:12:30 | * | bitstoppa[m] joined #nim |
11:12:35 | * | SolitudeSF[m] joined #nim |
11:12:35 | * | narimiran[m] joined #nim |
11:12:35 | * | stisa[m] joined #nim |
11:12:35 | * | TheManiac[m] joined #nim |
11:12:35 | * | xomachine[m] joined #nim |
11:12:35 | * | zacharycarter[m] joined #nim |
11:12:36 | * | sendell[m] joined #nim |
11:12:36 | * | toofly[m] joined #nim |
11:12:36 | * | endes[m] joined #nim |
11:12:36 | * | jaens[m] joined #nim |
11:12:37 | * | zielmicha[m] joined #nim |
11:12:37 | * | petersjt014[m] joined #nim |
11:12:37 | * | macsek1911[m] joined #nim |
11:12:37 | * | spymasterd[m] joined #nim |
11:12:38 | * | sg-james[m] joined #nim |
11:12:38 | * | syntonym[m] joined #nim |
11:12:40 | * | Connor[m]1 joined #nim |
11:16:04 | * | SenasOzys joined #nim |
11:33:12 | FromGitter | <kaushalmodi> A JSON module question.. Let's say I have created a `JsonNode` using `%*`. What's a good way to push a new key/value pair to it? |
11:35:00 | FromGitter | <mratsim> foo\[key\] = value |
11:36:29 | FromGitter | <kaushalmodi> Ah, that's it? :) Thank you. I search for things like push, merge, etc but couldn't find. |
11:38:24 | FromGitter | <Vindaar> It does depend a little bit on what kind of `JsonNode` you created with `%*` if I'm not mistaken |
11:39:28 | FromGitter | <Vindaar> e.g. if you created a `JArray`, you can't just do `jArray["Hallo"] = "kaushal"` I think |
11:39:41 | FromGitter | <kaushalmodi> Oh, is it? |
11:40:18 | FromGitter | <Araq> no because that would be a JObject... |
11:40:43 | FromGitter | <Vindaar> indeed |
11:42:14 | FromGitter | <kaushalmodi> Hmm, I am trying to optimize this: https://github.com/kaushalmodi/ntodo/blob/master/src/ntodopkg/tasks.nim#L58-L76 |
11:43:39 | FromGitter | <kaushalmodi> Wait, that's not a JArray |
11:43:45 | FromGitter | <Vindaar> in that case you create a `JObject`with `%*` |
11:43:47 | FromGitter | <Vindaar> yes |
11:44:00 | FromGitter | <Vindaar> so in that case what @mratsim proposed works just fine |
11:44:27 | FromGitter | <kaushalmodi> Yup, thanks. |
11:44:32 | * | SenasOzys quit (Remote host closed the connection) |
11:45:05 | * | SenasOzys joined #nim |
11:45:13 | * | abm joined #nim |
11:48:58 | * | krux02 joined #nim |
11:50:36 | * | jjido joined #nim |
11:55:03 | * | jjido quit (Ping timeout: 252 seconds) |
11:57:28 | * | nsf quit (Quit: WeeChat 2.2) |
11:57:30 | * | rockcavera quit (Remote host closed the connection) |
12:05:20 | * | borsin5 joined #nim |
12:10:05 | * | borsin5 quit (Remote host closed the connection) |
12:12:52 | * | rockcavera joined #nim |
12:14:51 | * | nikivi27 joined #nim |
12:16:48 | * | nikivi27 quit (Killed (Unit193 (Spam is not permitted on freenode.))) |
12:27:34 | * | zachcarter quit (Ping timeout: 240 seconds) |
12:34:13 | * | SenasOzys quit (Ping timeout: 245 seconds) |
12:46:21 | * | SenasOzys joined #nim |
12:49:40 | * | pqflx3[m] quit (Remote host closed the connection) |
12:49:40 | * | stisa[m] quit (Remote host closed the connection) |
12:49:40 | * | narimiran[m] quit (Remote host closed the connection) |
12:49:41 | * | codevance[m] quit (Remote host closed the connection) |
12:49:41 | * | SolitudeSF[m] quit (Read error: Connection reset by peer) |
12:49:41 | * | jaens[m] quit (Read error: Connection reset by peer) |
12:49:42 | * | hitchhooker[m] quit (Read error: Connection reset by peer) |
12:49:43 | * | dyce[m] quit (Write error: Connection reset by peer) |
12:49:44 | * | zielmicha[m] quit (Remote host closed the connection) |
12:49:44 | * | xomachine[m] quit (Remote host closed the connection) |
12:49:44 | * | Miguelngel[m] quit (Remote host closed the connection) |
12:49:45 | * | petersjt014[m] quit (Remote host closed the connection) |
12:49:45 | * | TheManiac[m] quit (Read error: Connection reset by peer) |
12:49:45 | * | Connor[m]1 quit (Write error: Connection reset by peer) |
12:49:47 | * | toofly[m] quit (Remote host closed the connection) |
12:49:48 | * | syntonym[m] quit (Remote host closed the connection) |
12:49:50 | * | spymasterd[m] quit (Remote host closed the connection) |
12:49:52 | * | macsek1911[m] quit (Read error: Connection reset by peer) |
12:49:52 | * | unclechu[m] quit (Remote host closed the connection) |
12:49:53 | * | GitterIntegratio quit (Remote host closed the connection) |
12:49:53 | * | yglukhov[m] quit (Remote host closed the connection) |
12:49:53 | * | sendell[m] quit (Write error: Connection reset by peer) |
12:49:54 | * | gh0st[m] quit (Remote host closed the connection) |
12:49:54 | * | zacharycarter[m] quit (Remote host closed the connection) |
12:49:54 | * | bitstoppa[m] quit (Read error: Connection reset by peer) |
12:49:54 | * | TheKing[m] quit (Remote host closed the connection) |
12:49:55 | * | endes[m] quit (Read error: Connection reset by peer) |
12:49:56 | * | sg-james[m] quit (Remote host closed the connection) |
12:51:17 | * | noonien joined #nim |
12:55:04 | FromGitter | <kaushalmodi> A new code running bot on Mastodon that uses too.run, |
12:55:26 | FromGitter | <kaushalmodi> *tio.run |
12:56:08 | FromGitter | <kaushalmodi> ://mastodon.technology/users/kaushalmodi/statuses/100644932781178601 |
12:58:30 | * | pqflx3[m] joined #nim |
12:58:36 | FromGitter | <kaushalmodi> One more try to paste a sane link: https://mastodon.technology/users/kaushalmodi/statuses/100644932781178601 |
13:03:30 | * | Elronnd quit (Ping timeout: 264 seconds) |
13:04:05 | * | fsamareanu14 joined #nim |
13:08:50 | * | fsamareanu14 quit (Remote host closed the connection) |
13:10:26 | * | gh0st[m] joined #nim |
13:10:26 | * | hitchhooker[m] joined #nim |
13:10:27 | * | bitstoppa[m] joined #nim |
13:10:27 | * | yglukhov[m] joined #nim |
13:10:27 | * | codevance[m] joined #nim |
13:10:27 | * | GitterIntegratio joined #nim |
13:10:27 | * | TheKing[m] joined #nim |
13:10:27 | * | dyce[m] joined #nim |
13:10:28 | * | Demos[m] joined #nim |
13:10:28 | * | unclechu[m] joined #nim |
13:10:33 | * | sendell[m] joined #nim |
13:10:33 | * | zacharycarter[m] joined #nim |
13:10:33 | * | narimiran[m] joined #nim |
13:10:33 | * | TheManiac[m] joined #nim |
13:10:34 | * | SolitudeSF[m] joined #nim |
13:10:34 | * | endes[m] joined #nim |
13:10:34 | * | Connor[m]1 joined #nim |
13:10:35 | * | syntonym[m] joined #nim |
13:10:35 | * | Miguelngel[m] joined #nim |
13:10:35 | * | jaens[m] joined #nim |
13:10:35 | * | petersjt014[m] joined #nim |
13:10:35 | * | toofly[m] joined #nim |
13:10:35 | * | macsek1911[m] joined #nim |
13:10:35 | * | sg-james[m] joined #nim |
13:10:36 | * | xomachine[m] joined #nim |
13:10:36 | * | spymasterd[m] joined #nim |
13:10:36 | * | stisa[m] joined #nim |
13:10:37 | * | zielmicha[m] joined #nim |
13:12:46 | * | Elronnd joined #nim |
13:13:09 | PMunch | Is Matrix having some trouble today? |
13:20:24 | FromGitter | <Araq> constantly, I'm on gitter because of this |
13:21:25 | federico3 | kaushalmodi is it written in Nim? |
13:27:28 | * | SenasOzys quit (Ping timeout: 272 seconds) |
13:27:59 | PMunch | @Araq, to avoid the join/leave messages? |
13:28:08 | PMunch | I was wondering why you had switched to using Gitter |
13:36:16 | * | PrimHelios quit (Ping timeout: 260 seconds) |
13:36:50 | FromGitter | <kaushalmodi> federico3: If you mean the bot, then no. But that bot uses https://tio.run which supports Nim |
13:37:17 | copygirl | Mhh.. if I want to set up a safe way to push/pop opengl modelview matrices, in such a way that you ensure they're being popped before returning control to the caller, how could I structure that in Nim? |
13:37:52 | copygirl | I suppose.. maybe a template, in which I push, execute the block, then pop..? |
13:38:10 | * | cspar quit (Ping timeout: 246 seconds) |
13:42:07 | PMunch | copygirl, yeah a template is probably what you want |
13:42:59 | PMunch | Basically what is going on in the template here: https://nim-lang.org/docs/manual.html#guards-and-the-locks-section-protecting-global-variables |
13:43:09 | FromGitter | <alehander42> yeah, basically that's similar to python's context managers |
13:43:12 | PMunch | Just sub the thread stuff for what you are doing |
13:43:22 | FromGitter | <alehander42> I used macros/templates to simulate them in nim |
13:43:38 | copygirl | Thanks for confirming my suspicions :) |
13:44:43 | * | floppydh joined #nim |
13:45:57 | FromGitter | <alehander42> btw do we have something similar for `{.push.}` |
13:47:39 | * | PrimHelios joined #nim |
13:49:30 | * | cspar joined #nim |
13:54:00 | * | SenasOzys joined #nim |
13:54:11 | * | jjido joined #nim |
14:02:12 | * | subsetpark left #nim (#nim) |
14:04:08 | * | floppydh quit (Quit: WeeChat 2.2) |
14:06:30 | FromGitter | <Araq> what do you mean? |
14:11:40 | PMunch | @Araq, what does who mean? |
14:12:19 | FromGitter | <Araq> @alehander42 what do you mean? |
14:13:50 | * | kapil___ joined #nim |
14:15:45 | * | endragor joined #nim |
14:31:18 | * | Venusaur9 joined #nim |
14:31:54 | FromGitter | <alehander42> i mean like ⏎ ⏎ ```push(pragma): ⏎ proc .. ⏎ ``` [https://gitter.im/nim-lang/Nim?at=5b89515a9c71d363c156b460] |
14:36:24 | * | Venusaur9 quit (Remote host closed the connection) |
14:37:10 | * | endragor quit (Remote host closed the connection) |
14:40:33 | * | miran joined #nim |
14:40:36 | FromGitter | <Araq> you can use a template for it, but yeah, that would be nice |
14:54:00 | * | PrimHelios quit (Quit: Leaving) |
14:58:20 | FromGitter | <Clyybber> @Araq Is it possible to call a proc defined in `config.nims` from the main code? |
15:03:12 | * | d0nn1e joined #nim |
15:04:24 | * | Perkol joined #nim |
15:04:25 | * | d0nn1e quit (Remote host closed the connection) |
15:06:01 | leorize | Clyybber: it is not possible to do so |
15:07:06 | FromGitter | <Araq> well you can do: const fromMain = true; include "config.nims" and then in the nims check for 'when declared(fromMain)' |
15:07:55 | * | opi_ quit (Ping timeout: 250 seconds) |
15:08:51 | * | opi_ joined #nim |
15:13:04 | FromGitter | <Araq> or put the code in a helper module that your config.nims imports and also your main.nim |
15:13:15 | FromGitter | <Araq> the fact that everything is in Nim is so nice :-) |
15:25:03 | * | cspar quit (Ping timeout: 245 seconds) |
15:29:57 | * | smt` joined #nim |
15:33:19 | * | smt quit (Ping timeout: 246 seconds) |
15:36:16 | FromGitter | <Clyybber> @Araq Thank you. |
15:38:36 | FromGitter | <Clyybber> Could one also do `from config.nims import someproc`? |
15:39:40 | FromGitter | <Araq> yeah if you get the quotes right, `from "config.nims" import someproc` |
15:40:55 | FromGitter | <Clyybber> Nice |
15:53:35 | * | cspar joined #nim |
16:03:39 | FromDiscord | <treeform> Araq, hey I got the nimedit working on windows. |
16:04:35 | FromGitter | <Araq> wow, really? |
16:04:39 | FromGitter | <Araq> Screenshot please |
16:04:54 | FromDiscord | <treeform> I did not change the font rendering or anything |
16:05:37 | FromDiscord | <treeform> |
16:05:37 | FromDiscord | <treeform> https://cdn.discordapp.com/attachments/371759389889003532/485117965176537128/unknown.png |
16:05:47 | FromDiscord | <treeform> I don't even know how to open files though |
16:05:55 | FromDiscord | <treeform> And it seems to crash if I try to do anything |
16:06:06 | FromGitter | <Araq> gah, I thought you ported the font renderer |
16:06:20 | FromDiscord | <treeform> no it was hard enough getting it t compile |
16:06:24 | FromDiscord | <treeform> no it was hard enough getting it to compile |
16:06:28 | FromGitter | <Araq> I can run it on Windows without crashes |
16:06:41 | FromGitter | <Araq> well ok, I would need to port it to Nim devel |
16:06:58 | FromDiscord | <treeform> i used nim devel? |
16:07:02 | * | jjido quit (Read error: Connection reset by peer) |
16:07:06 | FromDiscord | <treeform> It took a tone of time to find all the DLLs |
16:07:20 | FromGitter | <Araq> could have send you them... |
16:07:21 | FromDiscord | <treeform> and it also outputs nothing because its a GUI mode app |
16:07:33 | FromGitter | <Araq> bbs |
16:07:44 | FromDiscord | <treeform> Araq, I still strongly suggest making a way to put DDLs into nimble packages for windows |
16:08:03 | FromDiscord | <treeform> Mac and Linux have .so figured out, but not windows |
16:09:16 | FromDiscord | <treeform> ``` |
16:09:16 | FromDiscord | <treeform> Hint: C:\Users\me\Dropbox\p\nimedit\nimedit.exe [Exec] |
16:09:16 | FromDiscord | <treeform> here |
16:09:16 | FromDiscord | <treeform> mainProc |
16:09:17 | FromDiscord | <treeform> created window |
16:09:17 | FromDiscord | <treeform> nimedit.nim(1203) nimedit |
16:09:17 | FromDiscord | <treeform> nimedit.nim(1155) mainProc |
16:09:19 | FromDiscord | <treeform> nimedit.nim(1011) processEvents |
16:09:20 | FromDiscord | <treeform> nimedit.nim(780) runAction |
16:09:22 | FromGitter | <mratsim> put dlls in a ./deps folder? `nimble install`? profit? |
16:09:22 | FromDiscord | <treeform> prompt.nim(113) runCmd |
16:09:23 | FromDiscord | <treeform> console.nim(198) parseWord |
16:09:25 | FromDiscord | <treeform> system.nim(2807) sysFatal |
16:09:27 | FromDiscord | <treeform> Error: unhandled exception: index out of bounds [IndexError] |
16:09:29 | FromDiscord | <treeform> Error: execution of an external program failed: 'C:\Users\me\Dropbox\p\nimedit\nimedit.exe '``` |
16:09:31 | FromDiscord | <treeform> it crashes here a ton |
16:09:34 | FromDiscord | <treeform> yes some thing like this |
16:10:34 | FromGitter | <data-man> ```code paste, see link``` ⏎ ⏎ Compiler crashes. What's wrong? ⏎ Maybe there's already a issue about this? [https://gitter.im/nim-lang/Nim?at=5b89687ac2bd5d117afd2580] |
16:11:17 | FromGitter | <mratsim> can you use tuble like that? |
16:11:20 | FromGitter | <mratsim> tuple* |
16:12:11 | FromGitter | <mratsim> `Interval[T: SomeIntervalType] = tuple[left, right: T]`? |
16:13:12 | FromGitter | <data-man> Why not? ⏎ I replaced this to concepts, but compiler should't crashes. |
16:14:23 | FromGitter | <data-man> I think so. :) |
16:14:59 | FromGitter | <mratsim> yeah compiler shouldn’t crash but the tuple declaration is foreign to me. |
16:20:40 | * | Trustable joined #nim |
16:20:57 | * | zachcarter joined #nim |
16:22:55 | * | kapil___ quit (Quit: Connection closed for inactivity) |
16:27:04 | * | JustTheDoctor joined #nim |
16:28:29 | FromGitter | <rayman22201> @mratsim good morning from the Western US. Jai has the worst "stealth mode" ever. Jonathan Blow has approximately 8 million twitch videos of him showing off the language. He just refuses to release the compiler... Araq was able to use macros to make Nim do some of Jai's coolest tricks in like 30 minutes though lol |
16:30:11 | FromGitter | <mratsim> :P |
16:30:31 | FromGitter | <mratsim> Any videos to recommend before the weekend =) |
16:31:51 | * | JustTheDoctor quit (Remote host closed the connection) |
16:33:01 | FromGitter | <rayman22201> hrmm. It depends if you like watching people talk too long about programming language design :-P |
16:33:53 | FromGitter | <rayman22201> This is the video where Jon Blow talks about the array tricks that I am referring to: https://www.youtube.com/watch?v=ZHqFrNyLlpA&index=6&list=PLmV5I2fxaiCKfxMBrNsU1kgKJXD3PkyxO |
16:33:54 | PMunch | @mratsim, videos of what? |
16:34:18 | FromGitter | <rayman22201> But there are a lot of good movie trailers out this weekend as well :-P |
16:35:17 | * | Jesin quit (Quit: Leaving) |
16:38:24 | * | SunTsu0 joined #nim |
16:39:13 | * | SunTsu0 quit (Remote host closed the connection) |
16:40:32 | FromGitter | <admin0day> how can i upload a csv file to the website backend which is write by the nim-lang behind the nginx ? |
16:40:52 | FromGitter | <admin0day> i always get this fault in my error.log |
16:40:55 | FromGitter | <admin0day> upstream prematurely closed connection while reading upstream |
16:42:36 | * | Jesin joined #nim |
16:42:45 | FromGitter | <admin0day> upstream prematurely closed connection while reading upstream |
16:42:49 | * | miran quit (Quit: Konversation terminated!) |
16:44:10 | PMunch | @admin0day, I'm not sure I understand your question |
16:44:26 | * | ftsf joined #nim |
16:44:45 | PMunch | So you have a back-end written in Nim behind an nginx reverse proxy |
16:44:46 | FromGitter | <rayman22201> upstream == the client == the browser closed the connection before the upload finished. Could be your nginx config or your client code. We need more info to help you. |
16:45:24 | PMunch | I'd say it's probably a timeout issue with you nginx config |
16:45:51 | PMunch | Is that error from you Nim back-end or from nginx? |
16:46:07 | FromGitter | <admin0day> from the nginx |
16:46:49 | PMunch | And you have an end-point in the Nim back-end that you can use to upload a .csv file to? |
16:47:42 | FromGitter | <admin0day> i found so many file just remind me the max_file and the fail_timeout should be set |
16:48:44 | FromGitter | <admin0day> yes ,the fouction is ok without the nginx |
16:49:25 | ftsf | hmm getting a segfault in setLengthSeq when calling keepItIf on a sequence |
16:51:18 | FromGitter | <admin0day> (https://files.gitter.im/nim-lang/Nim/AXa9/image.png) |
16:51:40 | FromGitter | <admin0day> here is my nginx.conf in 443 port |
16:52:00 | FromGitter | <admin0day> @rayman22201 |
16:53:25 | * | jjido joined #nim |
16:53:49 | FromGitter | <rayman22201> I think it's like @PMunch said. You need to set a higher timeout value in your nginx config. I don't remember the exact one you need. |
16:54:45 | * | Trustable quit (Remote host closed the connection) |
16:55:31 | FromGitter | <rayman22201> Google tells me that these are common nginx timeout settings: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b897303e5b40332ab25fdb6] |
16:57:35 | FromGitter | <admin0day> maybe i can try |
16:58:39 | FromGitter | <admin0day> this setting is the global setting? |
16:59:21 | PMunch | ftsf, on devel or stable? |
16:59:48 | ftsf | devel |
17:00:42 | ftsf | will try upgrading to latest |
17:01:46 | FromGitter | <rayman22201> @admin0day I don't know. I have not used nginx in a long time. Try it? |
17:02:59 | FromGitter | <mratsim> @rayman22201 thanks! |
17:03:08 | FromGitter | <mratsim> @Pmunch video about Jai programming language |
17:04:50 | FromGitter | <alehander42> @Araq what does `cc` do ? |
17:04:53 | FromGitter | <alehander42> nim cc |
17:05:23 | PMunch | ftsf, that might be a bug with the move away from nilable seqs |
17:07:18 | FromGitter | <Vindaar> @alehander42 according to `compiler/main` it's just the same as c ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b8975c6ac25fd11b5c01aed] |
17:10:15 | FromGitter | <admin0day> @rayman22201 it doesn't work |
17:11:02 | FromGitter | <mratsim> @rayman22201 First 10min, class/heap alloc are slow: I thought that was basic for C++ devs |
17:11:02 | * | jjido quit (Ping timeout: 272 seconds) |
17:12:20 | FromGitter | <alehander42> @Vindaar thanks |
17:12:54 | FromGitter | <admin0day> the csv.file just 8.07k,it is possible make the response overflow the buffer? |
17:17:14 | ftsf | hmm dang, seems a lot of code relies on nillable seqs |
17:17:27 | FromGitter | <rayman22201> @admin0day you said that it works when you bypass nginx? |
17:17:49 | FromGitter | <Araq> there is --nilseqs:on for backwards compat but fix all the code out there :-) |
17:18:14 | FromGitter | <rayman22201> @mratsim lol. I thought that was basic knowledge as well, but I guess people really don't know how allocation works these days... |
17:18:21 | FromGitter | <Araq> and yeah, I expect this to be a change that breaks more then --gc:destructors |
17:19:44 | ftsf | sounds good if i don't have to check for nil all the time =) |
17:22:50 | ftsf | aww no more {.this.} =( |
17:23:14 | FromGitter | <mratsim> it was broken for generics anyway ... |
17:24:00 | FromGitter | <rayman22201> speaking of videos, @Araq. You asked me a while ago for suggestions for livestreams / videos. I am finally getting some time to watch the old videos. My favorite so far is actually the "random bugfixes". It is very educational to just watch you dig into the compiler and fix random bugs. |
17:26:35 | ftsf | I take it {.this:self.} is not becoming default behaviour then? |
17:28:19 | FromGitter | <bung87> @admin0day just 8.07k timeout shouldn't be a problem,or you program open too many files? |
17:29:52 | ftsf | cool, updated to latest and fixed all the nil checks no more crash on keepItIf |
17:31:27 | FromGitter | <mratsim> @ftsf no it’s being phased out |
17:31:54 | ftsf | =( that's gonna really suck if there's nothing similar |
17:33:04 | * | kapil___ joined #nim |
17:33:34 | * | leorize quit (Ping timeout: 240 seconds) |
17:33:44 | * | PMunch quit (Quit: Leaving) |
17:34:30 | FromGitter | <mratsim> I think self being explicit is OK. |
17:36:39 | FromGitter | <admin0day> @rayman22201 the fault still exist. |
17:37:19 | * | leorize joined #nim |
17:38:46 | FromGitter | <admin0day> @bung87 i don't understand why open too many files will cause this fault. |
17:38:48 | FromGitter | <bung87> how you handle the uploading show the code |
17:38:53 | ftsf | self makes code a lot bigger and less readable, being explicit when it's needed is fine, but 99% of the time when i'm writing code it's not |
17:39:27 | * | yawkat27 joined #nim |
17:39:31 | FromGitter | <bung87> seach *linux maxfile* you will find something |
17:40:54 | FromGitter | <bung87> file size as KBs generally will be handled in second. |
17:44:17 | * | yawkat27 quit (Remote host closed the connection) |
17:50:03 | FromGitter | <admin0day> proc upload(unused, body: string; s: SocketHandle) {.gcsafe.} = ⏎ const schema = [strCol("billing_id"),strCol("zhifubao"),strCol("zhifubaoAccount"), ⏎ ⏎ ```code paste, see link``` ⏎ ... [https://gitter.im/nim-lang/Nim?at=5b897fcb1d3a5711b6c64e58] |
17:50:42 | FromGitter | <admin0day> how can i use markdown in this windows |
17:52:12 | FromGitter | <admin0day> proc upload(unused, body: string; s: SocketHandle) {.gcsafe.} = ⏎ const schema = [strCol("billing_id"),strCol("zhifubao"),strCol("zhifubaoAccount"), ⏎ ⏎ ```code paste, see link``` ⏎ ... [https://gitter.im/nim-lang/Nim?at=5b89804c1d3a5711b6c65047] |
17:53:27 | * | natrys joined #nim |
17:53:53 | FromGitter | <admin0day> proc upload(unused, body: string; s: SocketHandle) {.gcsafe.} = ⏎ const schema = [strCol("billing_id"),strCol("zhifubao"),strCol("zhifubaoAccount"), ⏎ ⏎ ```code paste, see link``` ⏎ ... [https://gitter.im/nim-lang/Nim?at=5b8980b1d8d36815e5b8de4f] |
17:54:18 | FromGitter | <admin0day> @bung87 |
17:55:15 | FromGitter | <mratsim> you should reformat that with triple quote Nim, code, triple quote. it’s unreadable and indentation is lost here. |
17:56:56 | FromGitter | <bung87> paste screenshot clip |
17:58:28 | FromGitter | <admin0day> (https://files.gitter.im/nim-lang/Nim/Dzj8/image.png) |
17:58:57 | FromGitter | <admin0day> (https://files.gitter.im/nim-lang/Nim/xFZx/image.png) |
17:59:18 | FromGitter | <mratsim> You can just use triple-quote Nim, your code, triple quote to paste code on Gitter, no need for screen shots |
18:00:39 | FromGitter | <admin0day> i want to use some shortcut key if exist… |
18:00:47 | FromGitter | <admin0day> here is the call |
18:00:54 | FromGitter | <admin0day> (https://files.gitter.im/nim-lang/Nim/RLMu/image.png) |
18:01:18 | FromGitter | <mratsim> https://gitter.zendesk.com/hc/en-us/articles/200176682-Markdown-basics |
18:01:43 | FromGitter | <mratsim> at the bottom you have the syntax, you can add Nim next to the opening triple-quote for proper highlighting |
18:02:49 | FromGitter | <bung87> think may programatic problems, 1 , not alwasy return a http response.2, io perform inside loop |
18:03:12 | FromGitter | <Araq> ftsf: I think .self is pushing Nim too far in terms of implicit code. Also, unfortunately, it never worked well. |
18:04:45 | FromGitter | <mratsim> I think when collaborating on a shared codebase and debugging code written by other, being explicit is better here. |
18:05:27 | * | natrys quit (Ping timeout: 240 seconds) |
18:06:14 | FromGitter | <bung87> and you may change the `defer` to `try catch` to see what kind of error will raise. the timeout most cause by you code not always return a http response. |
18:07:36 | ftsf | doing game work, it's so handy since you're mostly in the mind of that object that you're working on, and makes the code a lot simpler and easier to read. i agree, it's annoying when self doesn't work as expected, but it's rare and easy to specify when needed. seems a shame to drop a feature that's so useful 95% of the time. |
18:08:02 | leorize | Araq: has --gc:destructors been working yet? |
18:09:05 | ftsf | one of my favourite things in nim is how brief i can be, for both writing and reading. |
18:09:27 | FromGitter | <admin0day> ummmm,i will try it later. |
18:14:38 | FromGitter | <mratsim> Yeah, I find it useful when I used it for my Go playing bot. Until it was broken for static/generics :P |
18:15:08 | FromGitter | <Araq> ftsf: in the longer run we'll be able to replicate the feature with a macro :-) |
18:15:40 | FromGitter | <Araq> but for now, we need to cut some corners |
18:15:53 | * | flyx|znc left #nim (#nim) |
18:15:57 | ftsf | ok, guess i'll wait before I update again =) |
18:16:03 | FromGitter | <rayman22201> I was about to say, `{.this:self.}` seems like it is better as a macro anyway... |
18:16:38 | ftsf | seems like it'd be difficult to do as a macro? but I'm not good with macros |
18:16:43 | FromGitter | <Araq> well you can update, it's not removed, it only triggers a deprecation warning |
18:17:44 | FromGitter | <Araq> @leorize: sadly, no. it's tough to get the phase orderings right |
18:19:19 | FromGitter | <tim-st> today I had a really bad crash with object variant, took me 10 minutes to find error, when discriminator was defined after a kind only variable, but cant reproduce :( |
18:32:35 | FromGitter | <tim-st> @ephja I created a working version for `lzma` with test cases in one file: https://gist.github.com/tim-st/2871ebb0dfda7f1966e83b1c37a19363 |
18:41:23 | FromGitter | <data-man> Another nice compression library: https://github.com/nmoinvaz/minizip |
18:44:10 | FromGitter | <tim-st> I would use `snappy` I think, but currently I'm finishing my `zim` implmentation which requires `lzma` |
18:44:12 | * | SenasOzys quit (Quit: Leaving) |
18:46:14 | FromGitter | <data-man> Snappy is very bad for short inputs. |
18:46:59 | FromGitter | <data-man> @tim-st Oh! Great!I like the zim format! I'm using GoldenDict for zim dicts. :) |
18:48:12 | FromGitter | <tim-st> I use it for nlp data, I also have a 80% finished xml wiki parser :) |
18:48:56 | FromGitter | <data-man> Nice! With bzip2 support? ;) |
18:49:23 | FromGitter | <ephja> xml wiki? |
18:49:30 | FromGitter | <tim-st> no, this can be implemented, but I think most (all?) zim files are lzma |
18:50:24 | FromGitter | <ephja> nvm. just searched for "zim" |
18:50:31 | FromGitter | <tim-st> @ephja yes, it reads the xml article in a nim object containing all information; https://dumps.wikimedia.org/mirrors.html |
18:50:40 | FromGitter | <data-man> I meant wiki's xml data is compressed by bzip2. |
18:51:35 | FromGitter | <ephja> @tim-st nice interface |
18:52:11 | FromGitter | <tim-st> ok, makes sense to support a bzip stream, but this is quite easy at the end, most difficult is the format especially when it comes to supporting automated template loading and builtin wiki parser functions |
18:52:26 | FromGitter | <tim-st> @ephja thanks, you can use it for your lib |
18:52:46 | FromGitter | <ephja> hmm https://github.com/freevryheid/nim-lzma/blob/master/lzma.nim |
18:53:18 | FromGitter | <tim-st> lol |
18:53:18 | FromGitter | <data-man> @tim-st What's about Xapian? libzim uses it. |
18:54:31 | FromGitter | <ephja> first commit 5 days later though :p |
18:55:25 | FromGitter | <tim-st> @data-man I dont use libzim, but this looks interesting |
18:55:52 | FromGitter | <tim-st> @ephja yeah, quite bad, bad I learnt a few tricks when implementing it, so it's not too bad |
18:55:54 | FromGitter | <data-man> There is https://github.com/samdmarshall/xapian.nim :) |
18:56:27 | FromGitter | <tim-st> cool, will have a look |
18:56:47 | * | zachcarter quit (Ping timeout: 240 seconds) |
18:56:52 | FromGitter | <ephja> @tim-st I've sent an invitation to the repo. I'll merge it though if you want |
18:57:58 | * | ftsf quit (Ping timeout: 245 seconds) |
18:58:01 | FromGitter | <ephja> "if unlikely(compressionLevel notin 0..9): ..." drop in the ocean imo :D |
18:58:55 | FromGitter | <ephja> do you think it should all be in one file? |
18:59:08 | FromGitter | <tim-st> thanks, I'm not very expercienced with github though, yeah I tried to use `static[range[0..9]` but didnt work |
18:59:53 | FromGitter | <tim-st> I think it depends what is the aim, when only these two procs should be available then yes, if the aim it to implement all procs of the lib then not |
19:00:48 | FromGitter | <ephja> a lot of it is rarely used I think |
19:02:09 | FromGitter | <tim-st> yes, I think maybe two additionally procs that take a nim stream could be done but these are the procs people want I think |
19:02:16 | FromGitter | <ephja> what I meant was, the branch hints will have make it like 0.01% faster for small inputs. it doesn't add much noise though. in any case, output buffer arguments will have the biggest impact |
19:03:02 | FromGitter | <tim-st> well, I tested it with likely template and it was much faster like 4 seconds if I remember correct |
19:03:22 | FromGitter | <tim-st> but I used a bigger test with bigger numbers |
19:03:49 | FromGitter | <tim-st> but surprisingly manual allocating and deallocating didnt had an impact |
19:05:06 | FromGitter | <data-man> @tim-st: Benchmark's source to the studio, please! :-D |
19:05:38 | FromGitter | <tim-st> haha, you could try the gist linked above with bigger values |
19:06:05 | FromGitter | <tim-st> @ephja I'm not sure if this will work https://github.com/freevryheid/nim-lzma/blob/master/lzma.nim for bigger tests, since there is no allocator in decompression |
19:06:08 | FromGitter | <ephja> I just can't imagine why the branch hints would have any signifcant impact. the hints are used a few times per call, but the compression and decompression often involves millions of operations |
19:06:43 | FromGitter | <tim-st> there are likely templates in the while loop |
19:07:36 | FromGitter | <tim-st> but maybe I'm wrong and the difference was when I change doAssert to the if check |
19:10:19 | FromGitter | <ephja> I see it now. looks good |
19:11:42 | FromGitter | <tim-st> thanks, I think you could also let the bindings in the folder so people could import them explicitly if they want and `import lzma` would give the high level procs only |
19:12:18 | FromGitter | <tim-st> at best the c files would be linked statically but I didnt got that working, it wasnt that easy like with lmdb |
19:15:31 | * | Trustable joined #nim |
19:15:53 | * | Trustable quit (Remote host closed the connection) |
19:16:37 | * | Trustable joined #nim |
19:19:42 | FromGitter | <ephja> I might try to link statically, but if only there was a more standardized interface like with dynamic linking |
19:20:44 | FromGitter | <tim-st> yes, it was really difficult... |
19:21:23 | FromGitter | <ephja> also, I wonder if compiling complex libs statically is actually possible if you know enough about the autotools ecosystem lol |
19:22:30 | FromGitter | <tim-st> for lmdb I only needed to compile 2 c files and everything worked |
19:31:41 | FromGitter | <data-man> UnQLite contains 2 c files too. And supports :mem: like SQLite's :memory: |
19:37:27 | FromGitter | <bung87> https://github.com/bung87/tinyterm/blob/master/src/ui/crossmenu.nim#L84 anyone can help me debugging this line on windows? |
19:39:46 | FromGitter | <tim-st> @data-man looks interesting too, I wonder how it compares to lmdb |
19:44:02 | * | kungtotte joined #nim |
19:44:20 | * | kungtotte quit (Client Quit) |
19:44:38 | * | cspar quit (Ping timeout: 245 seconds) |
19:46:32 | * | stefanos82 quit (Quit: Quitting for now...) |
19:46:45 | FromGitter | <data-man> @tim-st There are https://github.com/pmwkaa/ioarena and https://github.com/pmwkaa/engine.so |
19:47:35 | * | kungtotte joined #nim |
19:48:23 | FromGitter | <tim-st> @data-man thanks |
19:53:59 | FromGitter | <Araq> @bung87 there is nothing to debug, it's wrong |
19:54:59 | FromGitter | <bung87> hmm yes , many wrong.. it works on my mac so I want it works on windows. |
19:59:09 | FromGitter | <bung87> I saw nodejs implements it redirect stdio streaming, the current I just porting from a python module. It save and restore current stdio settings. |
19:59:22 | * | Perkol quit (Quit: Leaving) |
20:05:06 | FromGitter | <tim-st> can't you test your windows version? |
20:05:36 | FromGitter | <bung87> hmm I get nim works on windows now. |
20:05:54 | FromGitter | <tim-st> nim binaries for windows also work without problems using wine on linux |
20:06:36 | FromGitter | <bung87> I just forgot run finish.exe thought there's a install.exe :( |
20:07:09 | FromGitter | <tim-st> unfortunately there is no setup.exe like golang has |
20:09:06 | FromGitter | <bung87> found if let the code runs on windows, something may implements in stdlib |
20:10:41 | FromGitter | <Araq> I feel like a broken record by now. we *had* a setup.exe, it sucked |
20:11:21 | FromGitter | <Araq> and all the "superior" installers out there don't support mingw detection with an *optional* install like Nim does |
20:11:55 | FromGitter | <Araq> the price is that you need to read a tiny paragraph about double clicking on finish.exe |
20:13:38 | FromGitter | <bung87> yeah I the name *finish.exe* may not easy found... haven't saw a exe named *finish* that does install something :( |
20:14:00 | FromGitter | <Araq> it doesn't install, it configures. |
20:14:55 | FromGitter | <Araq> you "install" Nim itself by unzipping into your favorite directory, no admin rights required, works for Windows XP, 7, 8, 10, Vista... |
20:15:56 | FromGitter | <Araq> but fair enough, make a suggestion of how to name this .exe |
20:15:58 | FromGitter | <bung87> hmm may named setup.exe just my thoughts |
20:16:24 | FromGitter | <tim-st> I think the best way would be (if license allows) ship mingw gcc with nim have a checkbox "add nim to path" click in install, wait: nim is installed and works, like golang |
20:16:24 | FromGitter | <Araq> well setup.exe would be an installer, but I'll consider it |
20:16:56 | FromGitter | <Araq> tim-st: been there, done that, it means every time you download Nim you also download the >100MB Mingw stuff |
20:17:18 | FromGitter | <Araq> whereas with the current setup you only need to install mingw once and can update Nim way more easily |
20:18:43 | FromGitter | <tim-st> that's no problem with good compression and a clever minified mingw, golang is also quite big, and I think nowadays literally everyone prefers a big download over compiling a nightly one his own which takes 15 minutes, download takes 2 minutes + setup is easy |
20:19:02 | FromGitter | <tim-st> nightly build |
20:19:30 | FromGitter | <Araq> "good compression"? the default is .zip, it's unclear if we can assume .7z |
20:19:35 | FromGitter | <tim-st> go 1.11: 111mb |
20:19:59 | FromGitter | <tim-st> in worst case use 7z sfx extractor in the background |
20:20:07 | Demos[m] | mingw has some additional problems in that it has a ton of really tiny files and windows fs perf is so aweful it can take a while |
20:20:34 | Demos[m] | and like if you're using nim for native dev on windows you've probably already installed MS compiler toolchain which is like 5GB just by itself |
20:20:44 | FromGitter | <Araq> that would be 111mb that we need to upload twice (32 vs 64bits) for every release |
20:20:48 | Demos[m] | ship clang with nim |
20:20:51 | Demos[m] | easier |
20:21:05 | FromGitter | <Araq> tried, back then clang on Windows was bad. |
20:21:09 | FromGitter | <tim-st> Even if high skilled people can compile in the same time the download takes, if nim wants more users the very first step would be a setup.exe that works out of the box with everything |
20:21:12 | FromGitter | <Araq> dunno how it is today. |
20:21:39 | FromGitter | <Araq> maybe we want more users who can read a little bit of docurmentation. |
20:22:16 | FromGitter | <tim-st> tbh I think 99% of all users only read docs when they have problems and things dont work like they assume |
20:22:20 | kungtotte | Or you could just use choosenim and get the best of both worlds. A one-click deal to install mingw and nim, and then keep nim updated and switch between versions without redownloading mingw |
20:23:10 | FromGitter | <bung87> Emphasize some words on document would be better. |
20:23:41 | FromGitter | <Araq> we're shipping a programming language. Not some software that helps you edit your pictures. |
20:24:03 | FromGitter | <Araq> programmers on Windows need to know about the command line, some editors that are not notepad |
20:24:09 | FromGitter | <Araq> etc. |
20:24:40 | FromGitter | <kayabaNerve> Petition to add `nim photo` as an alias to `gimp`. |
20:25:30 | FromGitter | <bung87> nice one |
20:26:26 | FromGitter | <tim-st> There could also be an installer that downloads and extracts ming on the fly and makes the same as packing mingw directly |
20:26:39 | FromGitter | <Araq> maybe nim.exe should call finish.exe on its first start |
20:26:40 | FromGitter | <tim-st> it just has to work out of the box |
20:26:48 | kungtotte | @tim-st: you mean like choosenim already does? |
20:26:58 | FromGitter | <Araq> after all, you found a way to run nim.exe, don't you? |
20:27:27 | FromGitter | <tim-st> kungotte: I tried choosenim one time and it didnt work for me, and it tried to download over port 80 (unsecure connection) |
20:27:37 | FromGitter | <rayman22201> I had more issues with choosenim on windows than just raw nim lol. But that was because I had weird outdated OpenSSL libs installed for other reasons. :-P |
20:27:54 | FromGitter | <tim-st> when I try to install golang, it works 100% |
20:28:05 | FromGitter | <Araq> congrats. |
20:28:30 | FromGitter | <Araq> for many it doesn't, they cannot open a terminal and type 'go ...' |
20:29:08 | FromGitter | <tim-st> because they didnt reopen the terminal, this is the only thing they can make wrong, and of course such people exists |
20:29:54 | FromGitter | <Araq> ok, so I take it the Golang team nevertheless is concerned with helping these people. RIGHT? |
20:30:37 | FromGitter | <Araq> or are *they* allowed to say "whatever man, you need a minimum of brain activity to get going" |
20:31:04 | FromGitter | <tim-st> Know I dont think they say it, but at least nim works on arch linux out of the box |
20:31:10 | FromGitter | <tim-st> No |
20:31:33 | kungtotte | Can I just say, I think it's pretty funny to be worrying about one-click installers for a language that's v0.18 still. |
20:33:23 | FromGitter | <Araq> "works on arch linux out of the box"? how so if you refuse to read any instructions. |
20:34:05 | FromGitter | <tim-st> there is a package manager, I type in "nim" click on install, and finished |
20:35:36 | FromGitter | <Araq> ok, but that's Arch Linux's achievement then. |
20:39:55 | FromGitter | <bung87> re-design the page just fine , step 1, step 2, step3 done |
20:42:29 | FromGitter | <Araq> https://nim-lang.org/install_windows.html |
20:42:46 | FromGitter | <Araq> > Notes about binary installation ⏎ > The installation using the provided zip files should be fairly straightforward. Simply extract the files into the desired installation directory, and run finish.exe. |
20:43:17 | FromGitter | <Araq> Could make that text in bold. |
20:43:17 | FromGitter | <bung87> compare to linux much text than each linux distribution . |
20:43:51 | FromGitter | <bung87> yeah in bold , I saw it in `code` ... |
20:44:01 | FromGitter | <Araq> https://nim-lang.org/install_unix.html |
20:44:22 | FromGitter | <Araq> I fail to see how that's less text. |
20:45:13 | FromGitter | <bung87> *each linux distribution* not all |
20:47:01 | FromGitter | <bung87> the largest one **Manual installation from source ⏎ ** also less than window :( |
20:49:09 | FromGitter | <Araq> build64.bat ⏎ bin\nim c koch ⏎ koch tools |
20:49:25 | FromGitter | <Araq> are the instructions for Windows but we don't trust our Windows users to build from source |
20:50:02 | FromGitter | <Araq> and since you didn't read the very first paragraph anyway it seems valid to assume that. |
20:53:14 | FromGitter | <xmonader> is it possible to have SCAN to read array of arrays in redis client? |
20:56:31 | FromGitter | <bung87> yeah I barely build when I on windows. |
20:57:49 | FromGitter | <data-man> https://nuwen.net/mingw.html ~78 MB. Without git ~40 MB. |
21:25:29 | FromGitter | <arnetheduck> https://nim-lang.org/docs/nimc.html - nimcache docs out of date it seems |
21:27:05 | FromGitter | <Araq> yeah, official docs get updated with a release |
21:27:38 | FromGitter | <Araq> we also need "nightly" docs |
21:29:32 | * | Trustable quit (Remote host closed the connection) |
21:48:12 | * | nsf joined #nim |
21:50:17 | * | mrkirby15314 joined #nim |
21:53:04 | * | mrkirby15314 quit (Remote host closed the connection) |
21:53:12 | * | zachcarter joined #nim |
21:57:21 | * | zachcarter quit (Ping timeout: 244 seconds) |
22:02:55 | * | kapil___ quit (Quit: Connection closed for inactivity) |
22:03:02 | * | smt` quit (Ping timeout: 244 seconds) |
22:07:21 | * | druonysus quit (Read error: No route to host) |
22:07:56 | FromGitter | <alehander42> finish.exe sounds unexpected, it does need to be bolded in the docs |
22:12:37 | * | druonysus joined #nim |
22:12:37 | * | druonysus quit (Changing host) |
22:12:37 | * | druonysus joined #nim |
22:13:05 | * | Vladar quit (Remote host closed the connection) |
22:19:17 | FromGitter | <Araq> you can always find reasons to not read something on a screen |
22:26:22 | AlexMax | Nim's happy-path windows support story is very impressive. Nim compiles and runs, nimble finds and installs libraries just fine, the only thing I've ever had to do was move a .dll file to the same directory as my program. |
22:27:28 | AlexMax | good to see a language developer who isn't like "Huh? Windows? What's that?" |
22:27:57 | AlexMax | Although finish.exe was kind of unexpected |
22:39:24 | FromGitter | <bung87> the most worst parts is it gets emphasized in markdown.. :( https://github.com/nim-lang/website/blob/master/jekyll/install_windows.md#notes-about-binary-installation |
22:53:25 | * | a_b_m joined #nim |
22:56:15 | * | abm quit (Ping timeout: 244 seconds) |
23:00:22 | FromGitter | <kayabaNerve> I don't think we should run finish no matter what. I don't think we should or need to cater to users who face ID10T errors. |
23:00:59 | * | nsf quit (Quit: WeeChat 2.2) |
23:20:45 | FromGitter | <rayman22201> +1 for nightly docs. That would be very useful |
23:23:18 | * | deedra14 joined #nim |
23:27:12 | * | deedra14 quit (Excess Flood) |
23:30:52 | * | noonien quit (Quit: Connection closed for inactivity) |
23:34:19 | FromDiscord | <emekoi> +1 nightly docs |
23:34:55 | FromDiscord | <emekoi> is there a way to store a proc in a variable, then call it later? |
23:40:30 | * | gangstacat quit (Quit: Ĝis!) |
23:41:24 | * | gangstacat joined #nim |
23:42:09 | FromGitter | <data-man> @emekoi Sure. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b89d251f86b741b05efce5a] |
23:45:41 | * | endragor joined #nim |
23:50:03 | * | endragor quit (Ping timeout: 252 seconds) |