00:04:59 | shashlick | Basically I wanted 0.8.4 since it fixes a bug which was causing errors installing winregistry. See: https://github.com/miere43/nim-registry/issues/3. Curious why koch nimble doesn't get latest from github. |
00:22:28 | stisa | I think koch only gets the latest if you built Nim from git, looks like it checks for a `.git` directory and pulls from github if it's found |
00:42:20 | * | gokr quit (Ping timeout: 258 seconds) |
00:59:31 | * | PMunch quit (Quit: leaving) |
01:00:10 | FromGitter | <Varriount> shashlick: `nimble install nimble` |
01:01:30 | FromGitter | <Varriount> Though, that only gets stable releases |
01:01:56 | FromGitter | <Varriount> I can't remember the syntax for checking out from HEAD |
01:14:14 | * | jinshil joined #nim |
01:16:27 | demi- | hmmm, I seem to be having a problem with a c-style context object being GC'd before i can do anything with it :( i've tried inserting `GC_ref()` calls but that doesn't seem to change anything. |
01:21:59 | * | yay joined #nim |
01:25:21 | carterza | http://imgur.com/a/GZq3b |
01:36:01 | cheatfate | demi-, i can't help you because i need more information |
01:36:07 | cheatfate | but you can use `ptr` |
01:36:14 | cheatfate | and not `ref` |
01:37:29 | demi- | ok let me push up this code so you can see what i am doing |
01:46:00 | demi- | cheatfate: here is my compile log: https://gist.github.com/samdmarshall/3f6f54de311e6b57b04684ebe57dd416 and here is my code: https://github.com/samdmarshall/nimbus/blob/master/src/parser.nim |
01:47:03 | * | brson quit (Quit: leaving) |
01:47:43 | demi- | the problem i'm having is that as i'm parsing the AST provided by libclang, i'm trying to add things to this c-style context object pointer as i go(https://github.com/samdmarshall/nimbus/blob/master/src/parser.nim#L71) but when the code goes to print out everything it has collected, it says there is nothing in the array |
01:48:01 | demi- | however, if i make it echo after the `.add()`s i see the values in the arrays |
02:01:05 | * | NimBot joined #nim |
02:01:41 | * | NimBot joined #nim |
02:02:10 | * | NimBot joined #nim |
02:06:09 | * | chemist69 quit (Ping timeout: 240 seconds) |
02:20:14 | * | chemist69 joined #nim |
02:20:31 | * | yay quit (Quit: yay) |
02:25:19 | * | brson joined #nim |
02:29:23 | cheatfate | where is `ParserContext` declaration? |
02:30:16 | demi- | https://github.com/samdmarshall/nimbus/blob/master/src/language.nim, `ParseCursor` had `{.union.}` on it but that also seemed to be causing GC problems. |
02:31:27 | cheatfate | its interesting because GC must not touch stack objects |
02:31:38 | cheatfate | until function exits |
02:31:53 | cheatfate | is libclang.visitChildren(cursor, visitChildrenCallback, client_data) blocking operation? |
02:32:55 | cheatfate | i dont see any GC problems |
02:34:33 | demi- | it should be, it is a c function |
02:36:59 | demi- | yeah here is the log of it running, i put an `echo(context.cursor.s)` on line 111 (after the .add()) and the output looks like this: https://gist.github.com/9681ff2ae458d2b342fa359975707391 |
02:38:54 | cheatfate | and log is wrong |
02:39:09 | demi- | hmm? |
02:39:28 | cheatfate | because it must be something like @[version], @[version, lockOnSleep], @[version, lockOnSleep, useLockInterval] |
02:39:50 | cheatfate | its must increase with every added member |
02:39:53 | cheatfate | am i right? |
02:39:53 | demi- | right, that is what i would expect, but it isn't |
02:40:07 | demi- | yeah |
02:40:32 | demi- | but it seems like the array gets emptied, or i lose the refs to the strings that got added or something |
02:42:25 | * | rauss joined #nim |
02:44:09 | rauss | Has anyone here embedded a JavaScript runtime in nim? Chakracore, v8, SpiderMonkey, Duktape, etc. |
02:46:28 | cheatfate | demi-, array can be reinitialized too |
02:46:49 | demi- | yeah but based on the code flow that shouldn't happen |
02:47:17 | demi- | because the name would reset as well, and it doesn't |
02:51:03 | * | ibk joined #nim |
02:51:10 | cheatfate | demi-, could you please add `echo name` at like 48 |
02:51:17 | cheatfate | and show me the log |
02:51:20 | demi- | sure, sec |
02:51:37 | * | rosshadden joined #nim |
02:52:04 | demi- | https://gist.github.com/samdmarshall/f63dafb6afe3b42cf40fd0f1463e36f8 |
02:52:31 | * | rauss quit (Quit: WeeChat 1.7) |
02:52:41 | * | rauss joined #nim |
02:52:53 | cheatfate | line 37: `var context = cast[ptr ParserContext](clientData)` |
02:53:00 | cheatfate | remove `[]` from the end |
02:53:27 | cheatfate | and try again |
02:56:28 | demi- | yeah it is working now, what does that change? |
02:57:59 | * | brson quit (Quit: leaving) |
03:07:07 | cheatfate | [] is manual dereference of the object, but for some reason it creates a copy of object in `context` not the original one |
03:08:11 | cheatfate | but there also presents automatic dereference |
03:08:26 | cheatfate | i will ask Araq about this case tomorrow |
03:12:40 | demi- | ok thanks |
03:20:13 | * | yglukhov joined #nim |
03:25:11 | * | yglukhov quit (Ping timeout: 240 seconds) |
03:40:13 | carterza | starting on 3d - http://imgur.com/a/QBEOA |
04:01:19 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
04:07:51 | * | ftsf quit (Remote host closed the connection) |
04:17:12 | FromGitter | <barcharcraz> nice |
04:17:45 | FromGitter | <barcharcraz> the triangle of death |
04:26:02 | carterza | :D |
04:46:06 | * | def-pri-pub quit (Quit: leaving) |
04:47:43 | shashlick | is there a proc in Nim to quote URLs? Like urllib.quote in Python |
04:48:38 | shashlick | encodeUrl() found it |
04:59:53 | rauss | I'm having issues trying to use c2nim to wrap ChakraCore. Anyone with relevant experience with c2nim here? |
05:01:10 | * | carterza quit (Ping timeout: 245 seconds) |
05:03:30 | * | abruanese quit (Quit: All your IRC are belong to ZNC) |
05:04:50 | * | carterza joined #nim |
05:06:25 | FromGitter | <Varriount> I do |
05:06:29 | * | abruanese joined #nim |
05:06:51 | FromGitter | <Varriount> rauss: What trouble are you having? |
05:08:37 | rauss | Varriount: I'm getting an error from c2nim that I just don't really know how to debug |
05:09:21 | FromGitter | <Varriount> rauss: Can you show me the error and the file you're trying to translate? |
05:09:36 | rauss | Yes |
05:09:40 | * | derlafff quit (Remote host closed the connection) |
05:10:49 | rauss | Varriount: https://github.com/Microsoft/ChakraCore/blob/master/lib/Jsrt/ChakraCore.h |
05:11:14 | rauss | Varriount: tmp/aoeu/ChakraCore.h(58, 38) Error: ')' expected |
05:11:17 | * | derlafff joined #nim |
05:13:03 | FromGitter | <Varriount> rauss: C2Nim provides an extra define macro, `#def` |
05:14:20 | FromGitter | <Varriount> You use it to define macros that C2Nim actually expands, rather than tries to translate |
05:14:20 | rauss | Varriount: I have the c2nim docs up, but don't understand how I need to use the #def |
05:14:29 | FromGitter | <Varriount> Into a template |
05:15:23 | rauss | Varriount: So I would add a `def` for each `typedef`? |
05:16:41 | FromGitter | <Varriount> No, no. |
05:17:02 | FromGitter | <Varriount> Here, let me give an example, using the ChakraCore code. |
05:17:31 | FromGitter | <Varriount> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=589d4ceaf045df0a222ba3b1] |
05:19:25 | rauss | Varriount: Okay, I'm with you. Line 109 |
05:22:51 | FromGitter | <Varriount> rauss: One moment, writing up gist |
05:24:29 | shashlick | how do you get file stat()? |
05:25:37 | * | gokr joined #nim |
05:25:48 | shashlick | ugh, never mind - getFileInfo() |
05:27:53 | FromGitter | <Varriount> shashlick: Hey, don't knock getFileInfo, I wrote it. :D |
05:28:00 | rauss | :D |
05:29:16 | shashlick | Varriount: hat tip :) just that I keep looking for procs and find them exactly after posting here! |
05:30:23 | shashlick | re"[url|URL]=(.*?)\"" <== why isn't that compiling? Error: closing " expected |
05:31:00 | rauss | You have .*? |
05:31:12 | rauss | do you mean `(.*)?` ? |
05:31:44 | shashlick | no that works, looking for shortest match |
05:31:53 | shashlick | it doesn't like the " inside a regular expression |
05:31:58 | rauss | Oh I see |
05:32:08 | rauss | Cheat! |
05:32:09 | rauss | ["] |
05:32:11 | rauss | try that |
05:33:32 | * | gokr quit (Ping timeout: 255 seconds) |
05:33:58 | shashlick | doesn't like it |
05:34:09 | shashlick | can get around it with a """ string |
05:38:36 | FromGitter | <Varriount> rauss: Still there? |
05:38:46 | rauss | Varriount: Yep |
05:38:49 | FromGitter | <Varriount> https://gist.github.com/Varriount/42643edc4e817f767251bd4c75d58c22 |
05:39:34 | FromGitter | <Varriount> raus: There, a crash-course in C2Nim |
05:39:39 | rauss | Varriount: Thanks! |
05:40:32 | FromGitter | <jacobdufault> Can someone with edit permissions on issue tracker tag https://github.com/nim-lang/Nim/issues/5342 and https://github.com/nim-lang/Nim/issues/5366 with the destructor (https://github.com/nim-lang/Nim/labels/Destructor) label? |
05:41:19 | FromGitter | <Varriount> @jacobdufault Done. |
05:41:25 | FromGitter | <jacobdufault> Thanks! :) |
05:42:06 | FromGitter | <Varriount> rauss: I should have included an example of C2Nim translating a macro, but I couldn't think of one. |
05:47:35 | FromGitter | <Varriount> rauss: Any questions? |
05:47:59 | rauss | Varriount: I probably will have some, but trying to experiment first |
05:48:29 | FromGitter | <Varriount> rauss: For really large projects, there's an additional technique you can use. |
05:50:45 | FromGitter | <Varriount> You can write a script/use a tool to "comment" out all preprocessor macros (replace `#` with `comment#`), then 'selectively' re-enable the macros using regular expressions. Feed the resulting file through VCC/GCC/Clang's preprocessor-only mode, uncomment macros, then feed the partially-preprocessed file to C2Nim |
05:51:29 | FromGitter | <Varriount> This technique has the benefit of expanding `#include` directives, if you keep them uncommented. |
05:53:08 | rauss | That's interesting. So you can just worry about translating what you need, rather than have to fix everything throwing errors |
05:53:54 | FromGitter | <Varriount> Well, C2Nim will still throw errors - It's not able to parse all valid C/C++ constructs - but it definitely helps. |
05:55:53 | FromGitter | <Varriount> rauss: Again, it helps for very large projects that use a large amount of macros. |
05:56:11 | FromGitter | <rosshadden> @Varriount This is my attempt: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=589d55fa00c00c3d4f1c767f] |
05:56:11 | FromGitter | <Varriount> I used it very well on a past attempt to wrap the entire Windows SDK |
05:56:43 | FromGitter | <rosshadden> Which did not solve the error. Does anything stick out? |
05:57:35 | FromGitter | <rosshadden> @Varriount It's worth noting that the file this includes, `ChakraCommon.h`, defines these. Maybe that's part of the problem. |
05:58:12 | FromGitter | <Varriount> @rosshadden Hm, CHAKRA_CALLBACK is defined as `#define CHAKRA_CALLBACK CALLBACK` |
05:58:31 | FromGitter | <rosshadden> Yeah I was trying `void` to see if that would help |
05:58:39 | FromGitter | <Varriount> and in the Windows SDK, CALLBACK is defined as `#define CALLBACK __stdcall` |
05:58:56 | FromGitter | <rosshadden> Callbackception |
05:58:59 | FromGitter | <Varriount> My example may have been off, I was writing quickly. |
05:59:56 | FromGitter | <rosshadden> I was assuming you were writing the general idea, not the solution. So I was adapting the idea to this `JsErrorCode` line |
06:00:24 | FromGitter | <rosshadden> @Varriount I normally don't require hand-holding, I promise! :wink: Just out of my element here, and new to this |
06:00:41 | FromGitter | <Varriount> @rosshadden No problem. C2Nim is not kind to newcomers. |
06:02:56 | FromGitter | <Varriount> It's a very powerful tool though. |
06:04:09 | FromGitter | <rosshadden> @Varriount Thanks, setting it to `__stdcall` worked perfectly |
06:04:16 | * | aedigix quit (Remote host closed the connection) |
06:04:42 | * | aedigix joined #nim |
06:05:02 | FromGitter | <rosshadden> @Varriount To what extend are the included files parsed? I thought I read c2nim parses them by default. |
06:05:41 | FromGitter | <rosshadden> But the `_In_` and the other macro are defined in one of the included files, yet it doesn't work without me defining them here. |
06:06:12 | * | xet7 joined #nim |
06:07:04 | FromGitter | <Varriount> C2Nim doesn't look in include files |
06:07:23 | FromGitter | <Varriount> It simply translates includes into import statements |
06:07:37 | FromGitter | <Varriount> Nothing more. |
06:10:31 | FromGitter | <rosshadden> Oh! Okay |
06:10:53 | FromGitter | <rosshadden> @Varriount Thanks again. With your help I was able to do that entire file very quickly |
06:15:02 | * | brain5ide joined #nim |
06:15:22 | * | brain5ide quit (Quit: Leaving) |
06:18:13 | shashlick | why is extractFilename() adding a leading \ to the resulting filename? |
06:22:03 | FromGitter | <Varriount> shashlick: What path are you passing to it? |
06:22:20 | shashlick | https://www.autohotkey.com/download/1.1/AutoHotkey_1.1.24.05_setup.exe |
06:22:29 | shashlick | and in return I get \AutoHotkey_1.1.24.05_setup.exe |
06:23:29 | FromGitter | <Varriount> shashlick: Well, aside from the fact that extractFilename was meant for filesystem paths, looks like a bug. |
06:24:01 | FromGitter | <Varriount> shashlick: Are you preprocessing the string at all? |
06:24:34 | FromGitter | <Varriount> `extractFilename` just gets the last part of the tuple returned by `splitPath`: https://github.com/nim-lang/Nim/blob/fe0291f12708edd0c85ac53b3bd84a3411b8dfae/lib/pure/ospaths.nim#L230 |
06:25:25 | shashlick | nope no preprocessing |
06:26:49 | FromGitter | <Varriount> shashlick: What OS are you on? |
06:27:03 | shashlick | Windows 10, Nim 0.16.0 x64 |
06:27:14 | shashlick | https://github.com/nim-lang/Nim/blob/master/lib/pure/ospaths.nim#L231 - nothing magical happening in splitpath() |
06:28:38 | shashlick | what's worse is I don't know how to get rid of the \, strip doesn't work, a[0] == '\\' also doesn't match it |
06:31:39 | * | nsf joined #nim |
06:32:04 | shashlick | okay back all of that, my mistake, it's working fine |
06:32:43 | FromGitter | <Varriount> shashlick: I was about to say, https://glot.io/snippets/emzsdtml45 works fine. |
06:32:58 | FromGitter | <Varriount> shashlick: Again, I wouldn't use extractFilename on a URL |
06:33:03 | shashlick | should be more careful before posting dumb questions here, sorry to waste your time! |
06:41:12 | shashlick | brilliant though - ported my python script into Nim line by line with minimal effort, it just works, still some 100 lines left but great learning experience |
06:41:40 | * | gokr joined #nim |
06:44:56 | shashlick | has anyone written unzip in pure Nim? |
06:56:51 | FromGitter | <Varriount> shashlick: Nope |
07:08:45 | stisa | shashlick there's nimPNG that is written in pure nim without depending on zlib, so you could probably reuse the deflate implementation, I think. |
07:10:04 | * | rauss quit (Quit: WeeChat 1.7) |
07:12:14 | shashlick | stisa: very nice, will check out |
07:20:12 | * | gokr quit (Read error: No route to host) |
07:31:35 | * | filcuc joined #nim |
07:33:53 | shashlick | can you create an OrderedTable with a macro at compile time? |
07:36:22 | * | tankfeeder joined #nim |
07:45:53 | Araq | with nim devel that has some chance of working, yes :-) |
07:48:07 | FromGitter | <vegansk> @Araq, hi. Could you check https://github.com/nim-lang/Nim/pull/5355 again please. |
07:50:04 | shashlick | Araq: wow that will be interesting - so it's safe to say right now we can only do strings, ints, and not data structures |
07:50:41 | Araq | shashlick: no, I used the VM to perform DFA optimization passes |
07:50:58 | Araq | I know it's not nearly as stable for others, but for me it worked |
07:51:54 | Araq | except that it was way too slow and so I used a temp Nim program and staticExec to speed it up by an order of magnitude |
07:52:31 | Araq | it's safe to say that the VM hates global variables and 'ref T' |
07:53:38 | * | rokups joined #nim |
07:55:41 | * | yglukhov joined #nim |
07:55:54 | * | Andris_zbx joined #nim |
07:58:42 | * | yglukhov quit (Read error: Connection reset by peer) |
07:59:04 | * | yglukhov joined #nim |
08:00:13 | * | bjz joined #nim |
08:00:35 | * | yglukhov quit (Remote host closed the connection) |
08:00:50 | * | yglukhov joined #nim |
08:13:27 | Araq | whoever gave use intdefine and strdefine, great job :-) |
08:13:34 | Araq | these need to be the index though |
08:13:39 | Araq | *in the |
08:17:20 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
08:21:23 | * | tankfeeder quit (Quit: Leaving) |
08:26:54 | * | xet7 quit (Quit: Leaving) |
08:28:03 | Araq | vegansk: er, sorry, this is horrible code |
08:28:18 | Araq | will fix it and you watch and learn ;-) |
08:33:33 | * | bjz joined #nim |
08:37:08 | FromGitter | <vegansk> Ok, then show me :-) |
08:41:56 | FromGitter | <konqoro> Would there be any problems (performance, errors?) with this approach to create an object (the macro): https://gist.github.com/konqoro/18039606f5dc2c3997ced8563c612410 |
08:45:12 | * | xet7 joined #nim |
08:46:28 | Araq | konqoro seems slow, you copy into a temp and then copy the temp to the final dest, right? |
08:46:56 | FromGitter | <konqoro> yes |
08:47:07 | FromGitter | <konqoro> thought so |
08:47:22 | FromGitter | <konqoro> any better ways? |
08:50:13 | Araq | I don't know what you're trying to accomplish, Nim initializes these fields for you |
08:50:52 | Araq | you could have a macro that uses a 'typed' parameter and 'getType' to see if it's a seq or string and then emit 'x.field = @[]' only for these |
08:55:10 | FromGitter | <konqoro> I thought to use varargs, not to have to type all these parameters in the init proc |
08:56:11 | Araq | no, you give it the object to init via 'var' |
08:56:19 | Araq | and it checks via getType() its fields |
08:56:50 | Araq | no varargs, a single macro init(x: typed) |
08:57:15 | FromGitter | <konqoro> ok thanks Araq |
09:01:52 | * | yglukhov quit (Remote host closed the connection) |
09:06:08 | * | gokr joined #nim |
09:14:27 | * | gangstacat joined #nim |
09:17:31 | * | yglukhov joined #nim |
09:20:26 | * | Matthias247 joined #nim |
09:22:15 | * | jinshil quit (Quit: Good-bye!) |
09:38:14 | * | chemist69 quit (Ping timeout: 258 seconds) |
09:40:58 | * | chemist69 joined #nim |
09:45:10 | Araq | so ... no feedback about 0.16.1 on Windows? |
09:46:52 | * | couven92 joined #nim |
09:49:22 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
09:50:50 | * | Ven joined #nim |
09:55:30 | * | Arrrr joined #nim |
09:55:46 | * | Arrrr quit (Changing host) |
09:55:46 | * | Arrrr joined #nim |
09:57:29 | FromGitter | <andreaferretti> any news on https://github.com/nim-lang/website ? |
10:00:22 | FromGitter | <andreaferretti> I see the jekyll prototype has progressed considerably |
10:00:40 | FromGitter | <andreaferretti> I'd just find a better tagline than "efficient concise programming" |
10:01:55 | Araq | efficient, expressive, elegant always was our tagline |
10:02:09 | Araq | and it's an alliteration so it's good |
10:02:45 | FromGitter | <andreaferretti> yeah, "efficient, expressive, elegant " sounds better |
10:03:57 | * | yglukhov quit (Remote host closed the connection) |
10:04:46 | * | yglukhov joined #nim |
10:09:06 | * | yglukhov quit (Ping timeout: 240 seconds) |
10:15:27 | euantor | I'll test on Windows later on |
10:17:37 | rokups | nim's tagline is EEE? now that triggers some people hehe |
10:20:52 | * | yglukhov joined #nim |
10:21:42 | * | bjz joined #nim |
10:21:55 | Araq | rokups: I don't understand. |
10:22:18 | rokups | embrace - extend - extinguish ;) |
10:24:59 | * | arnetheduck joined #nim |
10:35:59 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:37:23 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
10:48:23 | * | sz0 joined #nim |
10:54:22 | FromGitter | <Varriount> Araq: Ich habe ein Kommentar zu finish.exe |
10:55:34 | FromGitter | <Varriount> It works on a Windows 10 system without MinGW, and downloads everything appropriate |
10:56:32 | FromGitter | <Varriount> My only criticism is that if the user moves the mingw zip to the wrong location, it doesn't give them another chance. |
10:57:27 | FromGitter | <Varriount> You can't even rerun the tool and have it install mingw without downloading again. |
10:57:34 | Araq | varriount: it uses curl to download to the right directory |
10:57:54 | Araq | but if you lack curl it uses your browser instead |
10:58:02 | Araq | seems like you lack curl. :-) |
10:58:38 | Araq | but yes, thanks for the feedback, I can improve this further |
10:58:39 | FromGitter | <Varriount> Araq: 99% of Windows systems lack curl |
10:58:49 | Araq | curl ships with git ;-) |
10:59:08 | Araq | at least some "git for Windows" distributions ship with curl |
10:59:27 | FromGitter | <Varriount> I know there's a builtin way to download a file - if nothing else, powershell provides such a procedure |
11:04:29 | * | gokr quit (Ping timeout: 258 seconds) |
11:07:38 | Araq | powershell might not be available and it may not give any progress bar indicator |
11:08:03 | FromGitter | <Varriount> Araq: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385098(v=vs.85).aspx |
11:10:09 | FromGitter | <Varriount> Or, since that doesn't appear to provide progress directly, https://msdn.microsoft.com/en-us/library/ms775123(v=vs.85).aspx |
11:11:51 | FromGitter | <Varriount> Although, the use of COM is required for the second, if you want progress callbacks. |
11:14:24 | Araq | A pointer to the IBindStatusCallback interface of the caller |
11:14:34 | Araq | yeah right, no idea how to get one of these |
11:15:25 | FromGitter | <Varriount> You create an object/type that fulfills the interface. |
11:15:42 | Araq | that needs a GUID and shit :P |
11:16:35 | Araq | I'd rather work on Nim instead of this little finish.nim thing ;-) so be my guest and make it work better |
11:16:41 | FromGitter | <Varriount> No, that's for registration. |
11:16:58 | FromGitter | <Varriount> Araq: It's the source code updated? |
11:17:28 | Araq | devel contains latest tools/finish.nim, yes |
11:20:37 | cheatfate | Araq, but `unix` also not always has `curl` or `wget` |
11:21:08 | Araq | cheatfate: finish tool is Windows only |
11:22:06 | cheatfate | Araq, then bundle mingw inside |
11:22:18 | cheatfate | and make everybody happy because it will work from box |
11:23:45 | Araq | we used to do that, it produced really huge files that I need to upload for every new release and it also it's not modular |
11:24:07 | Araq | right now I have win32 and win64 zips. with mingw that's 4 different zips |
11:24:24 | Araq | with optional aporia that's then 6 or 8 different zips |
11:26:34 | cheatfate | Araq, then you can ask Varriount to make reliable downloader for you :) |
11:26:55 | Araq | and it doesn't stop there, we need an easy way to download DLLs in general, this "nimble install and then search the web for DLLs" needs to stop |
11:27:01 | cheatfate | because using `curl` on windows is looks much worse, then one big zip |
11:27:23 | Araq | cheatfate: that's what I just did :P |
11:29:18 | * | carterza quit (Quit: carterza) |
11:33:34 | FromGitter | <Varriount> Hm. https://msdn.microsoft.com/en-us/library/windows/desktop/ms693449(v=vs.85).aspx |
11:34:34 | FromGitter | <Varriount> In this case, using that download would neither be from a server nor a container |
11:34:47 | FromGitter | <Varriount> *download function |
11:42:39 | * | PMunch joined #nim |
12:02:06 | * | Snircle joined #nim |
12:06:32 | * | Vladar joined #nim |
12:10:13 | * | Arrrr quit (Ping timeout: 240 seconds) |
12:16:15 | * | Ven joined #nim |
12:18:43 | * | Arrrr joined #nim |
12:20:31 | cheatfate | Varriount could not understand your latest posts... Using COM components from internet requires microsoft signed com component, and admin rights |
12:26:29 | FromGitter | <Varriount> Araq: Well, if you want a way to download things... we do have an asyn networking framework. ;P |
12:27:34 | Arrrr | What is the thing that you keep writting in nim over and over again and you wish there would be a macro/feature for it? |
12:28:06 | * | Ven quit (Ping timeout: 240 seconds) |
12:29:11 | Arrrr | If you don't have at least one, you are not a real nimmer |
12:30:51 | FromGitter | <Varriount> Arrr: A macro for writing macros? |
12:31:20 | Arrrr | lol |
12:31:24 | cheatfate | Varriount: it not works because you need openssl for it |
12:31:47 | FromGitter | <Varriount> cheatfate: Registering COM components requires admin rights. Supplying your own components to an in-server process does not. |
12:32:26 | FromGitter | <Varriount> Otherwise, how would C#, VB, and Powershell manage to interface with COM? |
12:33:07 | cheatfate | Until you not registered com component you can instantiate it |
12:33:24 | cheatfate | you can't instantiate it |
12:33:40 | Araq | the reason why I don't use httpclient is that it doesn't support "download to file" in a sane matter |
12:33:48 | cheatfate | if you are creating com components inside your process you don't need to register it to use it |
12:34:01 | Araq | for experimental installation stuff, we have downloader.nim tool |
12:34:12 | Araq | but finish needs to be rock solid stable |
12:35:48 | * | yglukhov quit (Remote host closed the connection) |
12:37:23 | * | Kingsquee joined #nim |
12:42:14 | * | carterza joined #nim |
12:49:46 | * | yglukhov joined #nim |
12:57:03 | * | tankfeeder joined #nim |
13:04:14 | * | sz0 quit (Quit: Connection closed for inactivity) |
13:10:34 | * | filcuc quit (Read error: Connection reset by peer) |
13:13:47 | * | filcuc joined #nim |
13:18:30 | yglukhov | Araq: is it possible to fix #5370 easily? |
13:19:16 | Araq | import ... as ... ? |
13:19:23 | Araq | that's not even a bug. |
13:19:36 | yglukhov | ouch |
13:22:07 | yglukhov | Araq: as a side-node. were there any improvements made to allow same-name modules within a single package? |
13:22:14 | * | krux02 joined #nim |
13:22:31 | Araq | nope, it's not gonna be supported. |
13:22:40 | Araq | learn to name your file properly you hippie. |
13:23:28 | Araq | ;-) |
13:23:41 | yglukhov | huh. why so? any language design concerns? |
13:24:24 | krux02 | not important I would say |
13:24:50 | yglukhov | "not important" != "not gonna be supported" |
13:24:52 | Araq | I like nimblepkg.module to be unique |
13:25:22 | yglukhov | in big projects it may be difficult |
13:25:32 | Araq | well it's enforced by the compiler |
13:25:43 | Araq | hard to argue with a compiler |
13:26:14 | yglukhov | ok |
13:26:59 | krux02 | yes thank you, that is a much better answer for me |
13:27:38 | flyx | any chance that #4802 will be fixed? I would really like to have NimYAML compile to JS, but I lack knowledge and time to tackle it myself |
13:27:46 | krux02 | Worst case scenario would be the java world with different class loaders and that mess |
13:29:29 | krux02 | flyx: I think that is a NimYAML issue, not a Nim issue. |
13:29:34 | FromGitter | <andreaferretti> @Araq I have tried tackling https://github.com/nim-lang/Nim/issues/5087 but I have not been able to make progress |
13:29:53 | FromGitter | <andreaferretti> I am sorry I will not have time right now to work on that |
13:29:56 | FromGitter | <andreaferretti> :-( |
13:31:45 | flyx | krux02: care to elaborate? |
13:34:45 | krux02 | that bug? not really, I personally don't care about the JavaScript backend at all. But when I have my own bugs, I always try to boil them down as deep as I can, so that I know it is a compiler problem before posting them |
13:35:58 | krux02 | because there are many more isses opened, than closed, I would just prefer when people put a bit more effort in their issues instead of just pasting huge problem files. |
13:36:26 | FromGitter | <andreaferretti> it is not always easy to do though |
13:36:51 | flyx | krux02: I put a lot of effort in it, but was not able to reproduce a smaller example. |
13:37:00 | FromGitter | <andreaferretti> better submit something and leave a trace of the problem than just avoid to submit |
13:37:46 | krux02 | Maybe, but then one should also accept, that it might just get low priority, because it is not really specific |
13:38:05 | carterza | krux02 : I’m noticing in nim-glm the methods to cast a quaternion to a mat4x4 and back are missing? Would you mind if I created a pull request to nim-glm? |
13:38:24 | carterza | or at least I’m not seeing them present |
13:38:59 | Araq | type Chain[R, A] = TableRef[seq[A], R] |
13:39:07 | flyx | krux02: and you are implying I am not accepting that? |
13:39:27 | krux02 | carterza: I am sure there is something to convert them |
13:39:33 | Araq | andreaferretti: I think it's a general problem with sigmatch.nim and this part needs to be changed quite a bit |
13:39:52 | Araq | sigmatch.nim throws away instantiation information only to "recover" it later |
13:39:58 | FromGitter | <andreaferretti> I see |
13:40:04 | krux02 | you just have to use mat3 afaik |
13:40:14 | FromGitter | <andreaferretti> I tried to follow the logic but at the I got lost |
13:40:39 | FromGitter | <andreaferretti> and lately I just had no time to try working on that |
13:41:36 | Araq | I don't dare to touch it because of regressions |
13:41:58 | Araq | submitted nimble packages that need to be kept green would help |
13:42:34 | carterza | ah okay thanks |
13:42:48 | FromGitter | <andreaferretti> yes, having a a community build infrastructure would really help |
13:43:09 | FromGitter | <andreaferretti> one would be able to see which commit breaks which library |
13:43:40 | FromGitter | <andreaferretti> but it is not a small task to build it (and make it secure) |
13:43:46 | krux02 | flyx: I can tell you what I do when I have a bug that I can't isolate. I create a project where it occurs. Then I remove everything that is not necessary to keep the bug visible. And then i iterate even more on it really boil it down to just a few lines that you can pase in the issue (max 20 lines of code). Then this is your issue |
13:44:09 | carterza | krux02 : https://github.com/g-truc/glm/blob/c8ddeea744d6ea7fc3deda06bba0d1f0d2a31f6a/glm/gtc/quaternion.inl#L621 was what I was looking for but it just uses mat3 like you said |
13:45:41 | * | yglukhov quit (Remote host closed the connection) |
13:45:50 | flyx | krux02: I am well aware of the process of creating a minimal example. it just didn't work for my issue. I gave up when I had 100 lines and still wasn't able to reproduce the issue |
13:46:16 | krux02 | carterza: https://github.com/krux02/nim-glm/blob/master/glm/quat.nim#L81 |
13:46:42 | carterza | saw that but the other way around is what’s catching me up |
13:46:49 | flyx | anyway, Araq used to say that he doesn't care much about minimal examples |
13:47:01 | krux02 | carterza: https://github.com/krux02/nim-glm/blob/master/glm/quat.nim#L169 |
13:47:14 | carterza | ah thanks |
13:47:29 | krux02 | just set v to 0 |
13:47:47 | carterza | gotcha |
13:47:57 | krux02 | I think I could make it default thogh |
13:48:12 | carterza | yeah that’s what was confusing me |
13:48:36 | Araq | flyx: yes, minimal examples are not that important, but "here is some git repo, it doesn't work" is the last resort because then I cannot make a test case out of it |
13:49:06 | krux02 | wait, that is not entirely correct it should be vec4(0,0,0,1) by default |
13:52:13 | carterza | thank you for that |
13:52:46 | flyx | Araq: yes, the problem here is that I don't really understand the nature of the problem and hoped that I could get at least some hint in which direction to look in order to generate a better example |
13:52:56 | carterza | bleh off to work :( opengl fun will have to wait till tonight |
13:53:17 | krux02 | I just pushed an update |
13:53:36 | FromGitter | <andreaferretti> @Araq would it make sense to you to use some hosted CI tool like Gitlab CI or Jenkins tu run library tests whenever someone commits to devel? |
13:53:44 | krux02 | honestly I just updated on github, there is no way there could go anything wrong with that :P |
13:55:17 | krux02 | andreaferetti: for it would make sense, because nim 0.16 introduced a bug that made nim-glm not compile anymore |
13:57:04 | FromGitter | <dom96> @andreaferretti that would be awesome, but I don't think it should happen on every commit. Maybe once per day. |
13:57:06 | krux02 | there is a "me" missing |
13:57:15 | FromGitter | <barcharcraz> yeah once per day could be good |
13:57:26 | FromGitter | <barcharcraz> and also maybe simple CI tests on em |
13:57:33 | FromGitter | <dom96> We already use GitLab CI actually, and in my experience it's been a PITA. |
13:57:43 | FromGitter | <barcharcraz> on all nimble libs? |
13:57:54 | FromGitter | <andreaferretti> well, every commit may be heavy, but it would pinpoint the exact point where something goes wrong |
13:57:58 | FromGitter | <dom96> What we need is a resurrection of NimBuild. |
13:58:00 | * | carterza quit (Quit: carterza) |
13:58:18 | FromGitter | <andreaferretti> but are you using gitlab CI on libraries as well? |
13:58:21 | FromGitter | <barcharcraz> welp I wish I was unemployed Dom |
13:58:29 | FromGitter | <dom96> @barcharcraz same :) |
13:58:35 | FromGitter | <dom96> @andreaferretti nope. |
13:58:36 | FromGitter | <barcharcraz> lol yeah |
13:58:45 | FromGitter | <andreaferretti> well, this is the point :-) |
13:59:00 | FromGitter | <andreaferretti> there should be an instance of CI open for registration (but moderated) |
13:59:06 | FromGitter | <barcharcraz> bright side my work may end up using unreal engine and nim is the only language with a good binding to it! |
13:59:09 | * | yglukhov joined #nim |
13:59:14 | FromGitter | <barcharcraz> thanks {.importcpp.} |
13:59:16 | FromGitter | <andreaferretti> so that library authors can directly write the commands to test their libraries |
13:59:26 | FromGitter | <dom96> I know, my point is that it was a PITA to use GitLab CI just to run tests and generate Windows installers. |
13:59:36 | FromGitter | <dom96> Testing all Nimble libraries would be even harder. |
13:59:39 | FromGitter | <barcharcraz> oh and speaking of which has anyone heard of the Calypso project for D |
13:59:44 | FromGitter | <andreaferretti> and compiler devs get the peace of mind that they do not break major sutf |
13:59:46 | FromGitter | <andreaferretti> stuff |
13:59:52 | FromGitter | <andreaferretti> why would it? |
13:59:54 | Araq | flyx: one uses ReadIOEffect, the formal param doesn't allow it |
13:59:59 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
14:00:02 | FromGitter | <andreaferretti> I don't see how that would be hard |
14:00:21 | FromGitter | <andreaferretti> library authors would write the tasks themselves |
14:00:32 | FromGitter | <dom96> Because you need to sandbox it |
14:00:39 | FromGitter | <barcharcraz> well just making sure the libs in nimble always build is good |
14:00:42 | FromGitter | <barcharcraz> but yeah |
14:00:51 | FromGitter | <andreaferretti> this is the reason why it should be moderated :-) |
14:00:59 | Araq | flyx: not that it makes any sense ;-) |
14:01:01 | FromGitter | <andreaferretti> just let in people you trust |
14:01:14 | FromGitter | <dom96> Sure, we could do that. |
14:01:18 | FromGitter | <barcharcraz> well I mean namespaces are a thing |
14:01:47 | FromGitter | <dom96> I think federico already tests installation of all nimble packages somewhere |
14:01:47 | FromGitter | <barcharcraz> except on mac maybe |
14:01:57 | FromGitter | <andreaferretti> as I said often |
14:02:02 | FromGitter | <andreaferretti> that does not make sense at all |
14:02:09 | FromGitter | <barcharcraz> yeah like some of my old nim packages probably don't work anymore |
14:02:13 | FromGitter | <andreaferretti> nimble install on all my libraries is just cp |
14:02:23 | FromGitter | <andreaferretti> there is nothing to do on install |
14:02:28 | FromGitter | <dom96> I know, but it's a natural step for him to extend it to also perform tests. |
14:02:40 | FromGitter | <barcharcraz> but like at least it makes sure your code still parsers |
14:02:42 | FromGitter | <barcharcraz> *parses |
14:02:45 | FromGitter | <andreaferretti> I have seen failures, and they were all due to network issues |
14:02:46 | FromGitter | <barcharcraz> less of a problem now |
14:02:57 | FromGitter | <andreaferretti> still does not make much sense |
14:03:10 | FromGitter | <andreaferretti> because there is noone to contact when something goes wrong |
14:03:23 | FromGitter | <andreaferretti> I think the right way to go is to have an actual registration |
14:03:56 | FromGitter | <andreaferretti> it takes some work to make all this, and glitlab CI already has users, tasks and so on |
14:04:16 | * | shashlick quit (Ping timeout: 258 seconds) |
14:04:33 | FromGitter | <andreaferretti> I am pretty sure that the code is not even parsed on nimble install |
14:04:39 | FromGitter | <andreaferretti> really, it just copies files |
14:04:40 | FromGitter | <dom96> Indeed, it isn't. |
14:04:46 | FromGitter | <andreaferretti> because there is not an entry point |
14:04:52 | FromGitter | <andreaferretti> for libraries |
14:05:24 | * | shashlick joined #nim |
14:05:44 | FromGitter | <dom96> But please, make it happen. |
14:06:06 | FromGitter | <andreaferretti> you already have a gitlab instance hosted somewhere? |
14:06:26 | FromGitter | <dom96> nope. Is hosting it ourselves necessary? |
14:06:41 | FromGitter | <andreaferretti> actually not |
14:07:09 | FromGitter | <andreaferretti> but you told "We already use GitLab CI actually," |
14:07:10 | FromGitter | <dom96> I can give you (and anyone else that needs a server for Nim infra projects) access to a DO droplet. |
14:07:26 | FromGitter | <dom96> I still have to set up this droplet though |
14:07:37 | FromGitter | <andreaferretti> :-) |
14:07:38 | FromGitter | <dom96> In fact, I still need to move the forum/IRC bot to another instance |
14:07:42 | FromGitter | <andreaferretti> it would be nice |
14:07:48 | FromGitter | <andreaferretti> I am not sure I will have time |
14:07:52 | FromGitter | <andreaferretti> but I can see what I cand o |
14:07:53 | FromGitter | <dom96> we do, but we use the one public instance |
14:07:59 | FromGitter | <andreaferretti> ah ok |
14:08:06 | FromGitter | <andreaferretti> I misunderstood |
14:08:53 | FromGitter | <dom96> I also have access to the gcc server farm |
14:09:04 | FromGitter | <dom96> Which is why I need a new and reliable CI service. |
14:09:10 | FromGitter | <dom96> That I can deploy on custom machines. |
14:09:15 | FromGitter | <andreaferretti> :-) |
14:09:20 | FromGitter | <dom96> I thought GitLab CI would work well for that, but now I'm not so sure. |
14:11:38 | Araq | would also be nice if NimBot could announce git commits here again |
14:14:52 | federico3 | dom96: yes, there's a CircleCI instance building Nim and doing nimble install on packages |
14:16:28 | federico3 | running real tests would be an interesting improvement but we need packages to ship some smoke tests with them |
14:17:45 | FromGitter | <dom96> Also, I think ci.nim-lang.org should show a dashboard of all our CI tools i.e. a list of links with some short description. |
14:20:05 | FromGitter | <andreaferretti> btw @dom96 any chance you had a look at https://github.com/nim-lang/nimble/issues/329 ? |
14:20:25 | federico3 | dom96: a wiki page might be easier to maintain |
14:20:54 | FromGitter | <andreaferretti> right now that and https://github.com/nim-lang/nimble/issues/305 make it really hard to use nimble to write custom tasks |
14:21:15 | FromGitter | <dom96> federico: a wiki page is also much harder to find |
14:21:21 | * | _yee quit (Remote host closed the connection) |
14:21:40 | federico3 | dom96: ci.nim-lang.org would link to that page :) |
14:22:37 | FromGitter | <dom96> federico: better yet show the wiki page. |
14:23:18 | FromGitter | <dom96> @andreaferretti haven't had a chance yet, maybe you could try that fix you suggested? |
14:23:38 | * | Ven joined #nim |
14:24:00 | federico3 | dom96: show it? |
14:24:13 | FromGitter | <andreaferretti> I could try, but I have never touched nimble |
14:24:24 | FromGitter | <andreaferretti> are there tests to make sure I don't break stuff? |
14:25:07 | Araq | flyx: my patched compiler produces |
14:25:11 | Araq | Error: type mismatch: got (proc (lex: YamlLexer): bool{.gcsafe, locks: 0.}) but expected 'LexerState = proc (lex: YamlLexer): bool{.closure, gcsafe, locks: 0.}' |
14:25:11 | Araq | .raises effects differ |
14:25:18 | Araq | does that help? |
14:26:11 | flyx | Araq: yes, thanks. if .raises effects differ, I can probably figure out which one it is |
14:26:19 | FromGitter | <dom96> federico3: embed the wiki page instead of giving a link |
14:26:31 | FromGitter | <dom96> @andreaferretti yes |
14:27:19 | flyx | Araq: the documentation pages are generated for one specific target, right? so we won't see different raises sets for JS vs C or Windows vs OSX rooting from `when` block, right? |
14:27:34 | Araq | yup :-) |
14:27:51 | flyx | well I see space for improvement there ^^ |
14:28:53 | FromGitter | <dom96> Yeah, ideally the doc gen should detect differences between define's and show them. |
14:29:15 | FromGitter | <dom96> This would also mean that defines can be more easily discovered. |
14:29:33 | Araq | what's a "define"? |
14:29:58 | FromGitter | <dom96> ``-d:foobar`` |
14:30:09 | Araq | it's actually easy enough to do 'nim doc2 --os:windows' vs 'nim doc2 --os:linux' vs 'nim doc2 -d:js' |
14:30:11 | FromGitter | <dom96> isn't that what the ``d`` stands for? |
14:30:17 | Araq | and diff the generated docs :P |
14:30:47 | FromGitter | <dom96> Araq: that doesn't cover the possibility of arbitrary defines ;P |
14:32:43 | FromGitter | <dom96> For example: -d:ssl |
14:33:43 | FromGitter | <andreaferretti> well, the library author can add whatever defines they like |
14:33:48 | FromGitter | <andreaferretti> for instance https://github.com/unicredit/linear-algebra/blob/master/linalg.nimble#L74-L77 |
14:35:16 | * | Princess17b29a joined #nim |
14:35:39 | Araq | flyx: {.push raises: YamlLexerError, gcSafe, locks: 0.} # this simply doesn't work |
14:35:55 | Araq | when I add that to the generic proc headers it compiles |
14:36:13 | Araq | constructingJson.nim(18, 24) Error: undeclared identifier: 'newStringStream' |
14:36:17 | flyx | Araq: interesting. but it seems to work for the C backend |
14:36:20 | Araq | well it then fails with that one then. |
14:36:40 | flyx | Araq: yeah, there may be other JS-related errors. that's expected |
14:37:05 | Araq | also SourceProvider is a concept but you use streams too |
14:37:10 | Araq | what's the point in that? |
14:37:27 | Araq | everything is generic thanks to that one afaict |
14:38:25 | flyx | the reason is that stream are not available for JS |
14:38:31 | Araq | that means I can get multiple instantiations of thousands of lines, meh |
14:38:31 | flyx | *streams |
14:38:49 | flyx | at least, StringStream isn't because it uses memcpy or something |
14:38:52 | Araq | so implement streams for JS |
14:38:59 | flyx | I tried and failed |
14:39:11 | Araq | o.O |
14:39:25 | flyx | yglukhov showed me an implementation but it was clustered with emits |
14:40:22 | Araq | shouldn't StringStream be trivial to do with the JS backend? |
14:41:22 | FromGitter | <dom96> isn't the problem the fact that the stream procs take a ``pointer``? |
14:41:37 | rokups | guess who got coroutines working with fibers on windows \o/ |
14:41:47 | flyx | well I had problems, I cannot really remember the details |
14:43:16 | flyx | another reason for having SourceProvider is that when backed by a simple string, it is able to always provide the source line where an error occurred. Stream cannot since the parser may already be at the next line and thus, the line in question may not be buffered anymore |
14:44:20 | * | Vladar quit (Quit: Leaving) |
14:44:37 | cheatfate | rokups, congratulations |
14:44:56 | rokups | thank you :) |
14:44:58 | flyx | typically, I would guess that only one of the two possible incarnations (Stream vs string backend) are instantiated |
14:45:29 | rokups | now if we could come up with a way to swap stack pointer without assembly involved we could get rid of any platform-specific code |
14:45:38 | yglukhov | flyx: i can't see why anyone would not like emits =) |
14:45:46 | flyx | well, I'm off attending a lecture. |
14:45:57 | cheatfate | rokups, what the problem with getcontext/setcontext? |
14:46:31 | Araq | why do we need fibers when we have nice inline assembler? |
14:46:55 | cheatfate | Araq, to support all architectures |
14:47:02 | rokups | oh yeah that, well as long as mr-know-it-all-Araq approves.. i do not fancy ucontext being deprecated, that is all. |
14:47:19 | rokups | Araq: reading on the internets it seems they might be doing more behind the scenes. they seem to be safer approach |
14:47:38 | rokups | besides like cheatfate said easy support for other architectures because someone else is maintaining platform-specific stuff |
14:48:01 | Araq | there are only x86, x86_64 and ARM left, all other CPUs are dead. :P |
14:48:20 | rokups | then get rid of that dead code in compiler :p and dead compiler support too :p |
14:49:35 | rokups | im talking about this stuff: elif defined(hppa) or defined(hp9000) or defined(hp9000s300) or defined(hp9000s700) or defined(hp9000s800) or defined(hp9000s820): |
14:49:39 | cheatfate | Araq, risc is not dead |
14:49:44 | rokups | i dont even know what those machines are heh |
14:51:11 | * | carterza joined #nim |
14:52:55 | cheatfate | rokups, `ucontext` deprecation you have found only for macos |
14:53:03 | FromGitter | <dom96> Yeah, RISC is good. https://www.youtube.com/watch?v=wPrUmViN_5c |
14:53:18 | cheatfate | as i mentioned earlier its deprecated into _XOPEN_SOURCE branch |
14:53:20 | rokups | cheatfate: i think i read its deprecated from posix |
14:53:47 | demi- | cheatfate: were you able to find out more about the behavior i was encountering last night? |
14:54:59 | * | tankfeeder quit (Quit: Leaving) |
14:56:52 | cheatfate | demi-, it yours and mine mistake |
14:57:23 | cheatfate | demi-, you must not dereference pointer by yourself, because it will create new variable for you which will be `copy`. |
14:57:46 | demi- | ahh, so i guess the example i was following was bad |
14:58:30 | demi- | iirc, the original code sample i looked at was using an `int`, thus there was no bad side-effect to making it get copied |
15:00:02 | cheatfate | demi-, right |
15:00:36 | demi- | i see, thanks for the explanation and for helping me debug that. |
15:01:46 | cheatfate | demi-, i'm waiting your `osxheaders.nim` to start cross-platform nim gui project :) |
15:01:57 | demi- | heh |
15:02:54 | demi- | well hopefully not too much longer, i've got most of the code sketched out for generating headers for any c/objc code, and it will be able to support c++ too, but i don't know enough c++ to properly write the nim interfaces for that |
15:03:08 | demi- | should have a prototype done this weekend i think |
15:03:53 | * | Arrrr quit (Ping timeout: 240 seconds) |
15:05:30 | cheatfate | rokups, i think we can still use `getcontext/setcontext` even if deprecated from posix, because i dont see any deprecation warnings on BSD/Linux |
15:06:51 | Araq | don't remove that beautiful inline asm :-( |
15:07:15 | Araq | what if I don't have an OS but like nim's coroutines to work? |
15:08:11 | Araq | rokups: defined(hppa) is some hitachi microcontroller that my mindstorm uses iirc |
15:08:38 | rokups | Araq: if you want to support that i guess it does not hurt to keep copy of setjmp/longjmp, but im not maintaining that :p |
15:09:22 | Araq | well it's enough when you don't mindlessly remove stuff |
15:09:23 | rokups | especially for non-x86 platforms |
15:10:27 | cheatfate | Araq, but we dont have any pieces of ARM specific assembly... |
15:10:38 | cheatfate | Araq, here only intel assembler |
15:10:52 | Araq | yeah, somebody should write that :-) |
15:11:46 | rokups | musl libc has setjmp/longjmp, someone needs to write func for switching stack. and gc support for arm stacks |
15:23:22 | FromGitter | <dom96> ooh, Nim is now called Nim on GitHub! |
15:23:31 | * | Arrrr joined #nim |
15:23:39 | * | elrood joined #nim |
15:23:41 | Araq | can it highlight 13'u16 now? |
15:24:42 | * | rauss joined #nim |
15:24:48 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:27:09 | * | daekano quit (Quit: ZNC - http://znc.in) |
15:33:59 | * | yglukhov quit (Remote host closed the connection) |
15:34:17 | * | yglukhov joined #nim |
15:34:34 | * | nsf quit (Quit: WeeChat 1.7) |
15:38:50 | * | gokr joined #nim |
15:41:00 | * | vlad1777d joined #nim |
15:41:11 | FromGitter | <dom96> probably not, but that's something we need to fix |
15:52:32 | * | Ven joined #nim |
15:57:20 | * | yglukhov quit (Remote host closed the connection) |
15:58:15 | cheatfate | Araq, https://gist.github.com/cheatfate/1b22e9edfa7cc4ae1b9d264b138a472c |
15:59:31 | cheatfate | it can highlight 13'u16 but fails on 0x16'u16 |
15:59:44 | * | yglukhov joined #nim |
16:00:11 | cheatfate | or maybe for 0xFF'u16 only |
16:00:16 | FromGitter | <andreaferretti> @dom96 I made a quick PR to fix the repeated flags issue |
16:00:21 | FromGitter | <andreaferretti> seems to work fine |
16:00:26 | FromGitter | <andreaferretti> (at least tests pass) |
16:00:29 | * | yglukhov quit (Read error: Connection reset by peer) |
16:00:59 | * | yglukhov joined #nim |
16:01:18 | FromGitter | <andreaferretti> Do you have any suggestions for https://github.com/nim-lang/nimble/issues/305 ? |
16:05:20 | * | yglukhov quit (Ping timeout: 245 seconds) |
16:07:02 | * | PMunch quit (Quit: leaving) |
16:10:47 | * | PMunch joined #nim |
16:11:36 | * | yeeve joined #nim |
16:15:45 | * | Ven quit (Ping timeout: 258 seconds) |
16:18:15 | carterza | krux02 - can you help me with another question? I’m trying to rotate a vec3f by a quatf? Simply multiplying the vec3f by the quatf isn’t working - no proc seems to exist that takes both of those types |
16:19:19 | krux02 | it's best when you transform the quat into a mat3 and them multiply the matrix |
16:19:34 | carterza | okay I’ll do that thank you |
16:20:01 | krux02 | there is a way to rotate a vector by a quaternion, but I keep forgetting how it is acutally done |
16:20:46 | krux02 | and when you have a lot to rotate, a mat3*vec3 is faster than some rotate(quat4,vec3) |
16:21:20 | carterza | gotcha |
16:21:25 | carterza | thank you for the explanation |
16:22:40 | * | Ven joined #nim |
16:23:12 | krux02 | You really should read the theory behind quaternions, it is tough, I can't wrap it up here, because with quaternions it is not just multiplication anymore |
16:23:21 | krux02 | it's a but more complicated |
16:23:58 | krux02 | it's best when you know what you want, then you look up the function, and then check again that the function actually does what you want, and does not some other weird things that you do not want. |
16:30:02 | krux02 | Araq: Concerning the PR about linenoise: gcc already compiles c/c++ according to the filetype it just does not link the c++stdlib. So puttingg gcc as the default compiler for the {.compile.} is I think a bit smarter than using g++ |
16:30:05 | dom96 | andreaferretti: looks good, thanks! |
16:30:36 | Araq | krux02: ok |
16:30:54 | dom96 | dunno about #305. |
16:31:15 | FromGitter | <andreaferretti> I suppose you are buffering output somewhere |
16:31:35 | FromGitter | <andreaferretti> it would just take to print it out directly, according to a flag |
16:32:55 | dom96 | sure, but like I said it should be contextual. |
16:33:34 | rokups | got to work ucontext coroutines as well and made it so we can switch on unixes between setjmp or ucontext. ucontext does not require any assembly code at all. setjmp requires minimal assembly |
16:34:13 | rokups | not sure which one should be default though |
16:37:35 | FromGitter | <andreaferretti> even a non contextual thing, hidden behind a flag, would be enough for me |
16:37:40 | FromGitter | <andreaferretti> ``--raw-output` |
16:39:11 | * | Trustable joined #nim |
16:43:46 | dom96 | andreaferretti: okay, feel free to implement that. |
16:45:09 | FromGitter | <andreaferretti> any hint where you do the buffering? |
16:49:04 | dom96 | https://github.com/nim-lang/nimble/blob/master/src/nimblepkg/tools.nim#L14 |
16:51:06 | dom96 | in fact I see a todo in there to make it live by default |
16:51:21 | dom96 | implementing that is a bit tricky though |
16:58:56 | * | PMunch quit (Quit: leaving) |
17:00:07 | FromGitter | <andreaferretti> thanks! |
17:07:12 | * | yglukhov joined #nim |
17:07:14 | * | devted joined #nim |
17:08:42 | * | Arrrr quit (Disconnected by services) |
17:08:42 | * | Arrrr1 joined #nim |
17:08:45 | * | yglukhov quit (Remote host closed the connection) |
17:08:57 | * | yglukhov joined #nim |
17:09:02 | * | nsf joined #nim |
17:17:11 | * | Ven quit (Ping timeout: 240 seconds) |
17:18:04 | * | Andris_zbx quit (Remote host closed the connection) |
17:23:11 | * | filcuc quit (Ping timeout: 240 seconds) |
17:35:27 | FromGitter | <andreaferretti> @dom96 I would just change this lines https://github.com/nim-lang/nimble/blob/master/src/nimblepkg/tools.nim#L24-L30 |
17:35:36 | FromGitter | <andreaferretti> to this |
17:35:41 | * | Arrrr1 quit (Quit: Leaving.) |
17:35:41 | FromGitter | <andreaferretti> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=589df9ec872fc8ce621b8be0] |
17:36:10 | FromGitter | <andreaferretti> (you have to be on gitter to see the code example) |
17:36:48 | FromGitter | <andreaferretti> https://gist.github.com/andreaferretti/e888b754d5ca55a64cd501a932dea1fe |
17:37:43 | FromGitter | <andreaferretti> then somewhere someone has to call `doCmd` with `showOutput = true` |
17:38:25 | FromGitter | <andreaferretti> anyway, I have to go |
17:38:32 | FromGitter | <andreaferretti> have a nice weekend! |
17:39:51 | * | pregressive joined #nim |
17:42:03 | * | pregressive quit (Read error: Connection reset by peer) |
17:42:28 | * | pregressive joined #nim |
17:45:51 | FromGitter | <timeyyy> Did nim applu for gsoc this year? |
17:46:53 | * | pregressive quit (Read error: Connection reset by peer) |
17:46:57 | * | pregress_ joined #nim |
17:51:31 | dom96 | shit, completely forgot about that |
17:51:53 | dom96 | But meh, we don't have time for that anyway. |
17:52:40 | * | cjbest joined #nim |
17:52:41 | dom96 | andreaferretti: something like that, but I would rather have it behind a new flag. |
17:53:11 | dom96 | Displaying the output raw will look off because it won't align with the rest of Nimble's output |
17:54:05 | * | jh32 quit (Ping timeout: 245 seconds) |
18:09:00 | krux02 | Araq: is there any specific reason, why in the compiler there is TLinkedList used, and not just seq[string]? |
18:16:11 | * | cjbest quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:16:42 | * | cjbest joined #nim |
18:17:02 | * | cjbest quit (Client Quit) |
18:17:27 | * | cjbest joined #nim |
18:17:49 | * | cjbest quit (Client Quit) |
18:18:32 | * | cjbest joined #nim |
18:18:37 | * | cjbest quit (Client Quit) |
18:19:16 | * | cjbest joined #nim |
18:19:25 | * | cjbest quit (Client Quit) |
18:20:02 | * | cjbest joined #nim |
18:20:13 | * | cjbest quit (Client Quit) |
18:20:52 | * | cjbest joined #nim |
18:21:01 | * | cjbest quit (Client Quit) |
18:21:42 | * | cjbest joined #nim |
18:21:49 | * | cjbest quit (Client Quit) |
18:22:29 | * | cjbest joined #nim |
18:22:37 | * | cjbest quit (Client Quit) |
18:23:09 | * | carterza quit (Ping timeout: 276 seconds) |
18:23:14 | * | cjbest joined #nim |
18:23:25 | * | cjbest quit (Client Quit) |
18:24:04 | * | cjbest joined #nim |
18:24:13 | * | cjbest quit (Client Quit) |
18:24:54 | * | cjbest joined #nim |
18:25:01 | * | cjbest quit (Client Quit) |
18:25:39 | * | cjbest joined #nim |
18:25:49 | * | cjbest quit (Client Quit) |
18:26:29 | * | cjbest joined #nim |
18:26:37 | * | cjbest quit (Client Quit) |
18:27:14 | * | cjbest joined #nim |
18:27:25 | * | cjbest quit (Client Quit) |
18:27:34 | * | GustavoLapasta joined #nim |
18:28:04 | * | cjbest joined #nim |
18:28:13 | * | cjbest quit (Client Quit) |
18:28:39 | * | cjbest joined #nim |
18:29:01 | * | cjbest quit (Client Quit) |
18:29:39 | * | cjbest joined #nim |
18:29:49 | * | cjbest quit (Client Quit) |
18:30:04 | elrood | to ease this list of connect and deconnect messages.. have you tested whether the documentation is generated correctly and completely for you yet, dom96? |
18:30:29 | * | cjbest joined #nim |
18:30:34 | dom96 | elrood: not yet |
18:30:37 | * | cjbest quit (Client Quit) |
18:31:00 | Xe | elrood: you can ignore those in your client fwiw |
18:35:50 | * | qwertfisch is now known as verstecktfisch |
18:36:07 | * | ibk quit (Quit: Connection closed for inactivity) |
18:56:57 | Araq | krux02: legacy. |
18:59:55 | * | yglukhov quit (Remote host closed the connection) |
19:05:03 | krux02 | any problem to get rid of legacy? |
19:06:22 | Araq | nah |
19:06:54 | * | yglukhov joined #nim |
19:14:13 | * | couven92 quit (Quit: Client disconnecting) |
19:20:19 | * | GustavoLapasta quit (Quit: Leaving) |
19:21:50 | * | Demos joined #nim |
19:41:03 | * | cjbest joined #nim |
19:49:06 | dom96 | Interesting. Github has a new dark nav bar. |
19:49:39 | demi- | it might be a bug? |
19:49:46 | Araq | :O |
19:49:46 | demi- | that is the default theme for GH enterprise |
19:57:51 | Demos | I saw that for me too |
19:58:30 | Demos | anyone know what timezone filcuc is in? |
20:18:11 | * | bjz joined #nim |
20:35:51 | * | verstecktfisch is now known as qwertfisch |
20:36:10 | * | cjbest quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:48:15 | * | cjbest joined #nim |
20:48:52 | * | brson joined #nim |
21:02:00 | * | chemist69 quit (Ping timeout: 245 seconds) |
21:02:25 | Araq | gokr: ping |
21:02:37 | gokr | pong |
21:03:01 | * | chemist69 joined #nim |
21:06:06 | * | brson quit (Ping timeout: 240 seconds) |
21:07:49 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:12:08 | * | rokups quit (Quit: Connection closed for inactivity) |
21:14:14 | Araq | gokr: hey, the mailing list is down, maybe because we moved to https. any ideas? |
21:14:34 | gokr | oh |
21:19:37 | gokr | Araq: Looking at the settings etc, but.... not sure |
21:22:24 | * | brson joined #nim |
21:24:38 | * | elrood quit (Quit: Leaving) |
21:25:39 | gokr | Araq: Ok, so me mailing the list seemed to go through. |
21:25:41 | * | yglukhov quit (Remote host closed the connection) |
21:26:39 | gokr | So I am guessing you changed something with the forum on... say 29/1? |
21:29:37 | federico3 | uh? |
21:33:29 | federico3 | issues with SNMP maybe? dom96 ? |
21:34:22 | federico3 | ahem, SMTP. I'm seeing a bounce msg from jan 28 and one from 9:23 and nothing in between, so the mailer was not attempting to deliver any emails |
21:36:19 | * | yglukhov joined #nim |
21:39:11 | Araq | gokr: no idea, dom96 knows more |
21:49:45 | krux02 | Araq: is there an easy access to the last element of a seq? |
21:50:11 | krux02 | something like `back` for std::vector in c++ |
21:51:28 | krux02 | I implemented back for my code on my own, but I miss it whenever I write some other code |
21:51:46 | krux02 | And it could have made things nicer in the pull request I just published |
21:52:04 | Araq | x[^1] |
21:52:15 | krux02 | hmm |
21:52:17 | krux02 | yea |
21:52:20 | krux02 | sounds reasonable |
21:52:30 | krux02 | didn't know |
21:58:53 | * | carterza joined #nim |
22:00:41 | * | yglukhov quit (Remote host closed the connection) |
22:00:44 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
22:03:49 | * | yglukhov joined #nim |
22:09:05 | * | rauss quit (Quit: WeeChat 1.7) |
22:10:29 | * | bjz joined #nim |
22:13:24 | * | gokr quit (Ping timeout: 258 seconds) |
22:13:34 | cheatfate | do we have appveyor gurus here? |
22:14:52 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:20:04 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:27:06 | federico3 | no way to convert TimeInterval to milliseconds? |
22:35:57 | * | bjz joined #nim |
22:38:30 | * | cjbest quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
22:39:25 | * | Kingsquee joined #nim |
22:39:53 | * | cjbest joined #nim |
22:40:39 | * | Demos quit (Quit: Leaving) |
22:43:14 | * | yglukhov quit (Remote host closed the connection) |
22:44:30 | * | cjbest quit (Client Quit) |
22:53:30 | * | Trustable quit (Remote host closed the connection) |
22:55:07 | Araq | krux02: sorry, I cannot accept your PR and I misunderstood you |
22:55:22 | Araq | it breaks every client of the compiler API... |
22:55:42 | Araq | I thought you only wanted to replace some internal linked list in extccomp |
22:57:11 | * | yglukhov joined #nim |
23:06:09 | * | yglukhov quit (Ping timeout: 256 seconds) |
23:07:20 | krux02 | well how many clients are there to the compiler api? |
23:13:44 | krux02 | the module that I wrote is lists, it is called already the same as the lists package from the standard library. I don't think that anybody uses it who wasn't forced to use it in the first place and would be happy to have it replaced with something better. |
23:19:11 | * | yay joined #nim |
23:23:04 | * | pregress_ quit (Remote host closed the connection) |
23:23:05 | * | carterza quit (Quit: carterza) |
23:23:37 | * | pregressive joined #nim |
23:25:09 | Araq | krux02: nimsuggest, nimble and nimedit use the compiler API |
23:25:26 | Araq | and maybe some other projects out there |
23:25:45 | * | pregressive quit (Read error: Connection reset by peer) |
23:25:56 | krux02 | nimsuggest, nimble and nimedit I can patch on my own |
23:25:59 | * | pregressive joined #nim |
23:26:09 | krux02 | and when there is another project out there, I can patch that, too |
23:26:19 | krux02 | becauese I doubt that it is heavily used |
23:26:55 | * | pregressive quit (Read error: Connection reset by peer) |
23:27:01 | krux02 | and the conversion is quite smooth |
23:27:19 | krux02 | I just need to replace the function names from the list with their equivalent on seq |
23:27:22 | * | pregressive joined #nim |
23:29:02 | * | pregressive quit (Read error: Connection reset by peer) |
23:29:09 | * | pregressive joined #nim |
23:29:32 | krux02 | I just wonder, how do I get nimble |
23:29:52 | krux02 | I remember humbly it got removed from the official distribution and the readded |
23:30:12 | krux02 | and ./koch nimble just does the same as ./koch -h |
23:33:59 | * | pregressive quit (Ping timeout: 255 seconds) |
23:34:12 | * | mounty quit (Quit: Konversation terminated!) |
23:38:21 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
23:48:07 | Araq | the problem is that nimble depends on the compiler and the compiler build depends on nimble |
23:48:20 | Araq | there is no way to make PRs and have things green |
23:49:46 | krux02 | so you want to be stuck with legacy forever? |
23:50:15 | Araq | no, but I know how to do compiler API updates and you don't :P |
23:51:46 | Araq | I also think Nim v0.16.0 should be able to compile Nimble |
23:54:22 | shashlick | How do you pm folks on Gitter? |
23:57:41 | * | Jesin quit (Quit: Leaving) |