00:29:12 | * | yglukhov joined #nim |
00:29:55 | * | chrisheller quit (Remote host closed the connection) |
00:33:23 | * | yglukhov quit (Ping timeout: 244 seconds) |
00:33:30 | * | gokr quit (Ping timeout: 268 seconds) |
00:39:06 | * | chrisheller joined #nim |
00:53:37 | * | yglukhov joined #nim |
00:58:22 | * | yglukhov quit (Ping timeout: 260 seconds) |
00:59:07 | * | brson quit (Ping timeout: 250 seconds) |
01:29:50 | * | yglukhov joined #nim |
01:34:21 | * | yglukhov quit (Ping timeout: 244 seconds) |
01:49:43 | * | chrisheller quit (Ping timeout: 252 seconds) |
01:54:10 | * | yglukhov joined #nim |
01:55:40 | * | castlelore quit (Quit: WeeChat 1.4) |
01:56:10 | * | castlelore joined #nim |
01:59:02 | * | yglukhov quit (Ping timeout: 260 seconds) |
02:05:56 | * | brson joined #nim |
02:30:10 | * | yglukhov joined #nim |
02:35:03 | * | yglukhov quit (Ping timeout: 276 seconds) |
02:41:43 | * | pregressive joined #nim |
02:46:08 | * | chrisheller joined #nim |
02:46:17 | * | pregressive quit (Ping timeout: 260 seconds) |
02:54:38 | * | yglukhov joined #nim |
02:54:59 | * | PMunch quit (Quit: leaving) |
02:59:45 | * | yglukhov quit (Ping timeout: 276 seconds) |
03:08:33 | * | space-wi_ joined #nim |
03:10:27 | * | space-wizard quit (Ping timeout: 244 seconds) |
03:30:35 | * | yglukhov joined #nim |
03:35:17 | * | yglukhov quit (Ping timeout: 260 seconds) |
03:41:06 | kingofoz | today I build urho3d against directx11 |
03:41:40 | kingofoz | then I compile character.nim, please see below error: |
03:42:03 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3dcompiler.lib" |
03:42:04 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3d9.lib" |
03:42:04 | kingofoz | d:\labs\urho3d-1.5\build\lib\urho3d_d.lib |
03:42:04 | kingofoz | Creating library d:\labs\urhonimo\examples\character.lib and object d:\labs\urhonimo\examples\character.exp |
03:42:04 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2019: unresolved external symbol _D3D11CreateDevice@40 referenced in function "private: bool __thiscall Urho3D::Graphics::CreateDevice(int,int,int)" (?CreateDevice@Graphics@Urho3D@@AAE_NHHH@Z) |
03:42:06 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2001: unresolved external symbol _IID_IDXGIAdapter |
03:42:08 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2001: unresolved external symbol _IID_IDXGIFactory |
03:42:10 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2001: unresolved external symbol _IID_IDXGIDevice |
03:42:12 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2001: unresolved external symbol _IID_IDXGIDevice1 |
03:42:16 | kingofoz | urho3d_d.lib(D3D11Graphics.obj) : error LNK2001: unresolved external symbol _IID_ID3D11Texture2D |
03:42:18 | kingofoz | urho3d_d.lib(D3D11ShaderVariation.obj) : error LNK2001: unresolved external symbol _IID_ID3D11ShaderReflection |
03:42:20 | kingofoz | d:\labs\urhonimo\examples\character.exe : fatal error LNK1120: 7 unresolved externals |
03:50:24 | * | space-wi_ quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
03:54:46 | * | space-wizard joined #nim |
03:55:12 | * | yglukhov joined #nim |
03:55:28 | * | space-wizard quit (Max SendQ exceeded) |
03:56:09 | * | space-wizard joined #nim |
04:00:12 | * | yglukhov quit (Ping timeout: 276 seconds) |
04:11:21 | kingofoz | please see this: |
04:11:23 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3dcompiler.lib" |
04:11:23 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3d9.lib" |
04:11:35 | kingofoz | seems urhonimo is still linking with d3d9? |
04:12:23 | * | gunn quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
04:12:44 | kingofoz | Araq_, can you give me a little clue? |
04:18:33 | * | gunn joined #nim |
04:22:17 | * | brson quit (Quit: leaving) |
04:24:13 | Demos_ | kingofoz, oh man |
04:24:29 | kingofoz | hi |
04:24:37 | Demos_ | hi |
04:24:46 | Demos_ | one moment |
04:25:11 | Demos_ | so for starters you probably need to compile with MSVC if you want to target DX |
04:25:14 | Demos_ | but you can try without |
04:25:20 | * | Varriount quit (Disconnected by services) |
04:25:20 | * | Varriount_ joined #nim |
04:26:59 | Demos_ | try sticking {.link: dxguid.lib.} |
04:27:07 | Demos_ | {.link: dxgi.lib.} |
04:27:11 | Demos_ | at the top of your file |
04:27:33 | kingofoz | let me try |
04:28:00 | Demos_ | maybe put d3d11.lib in there too |
04:28:43 | Demos_ | I thought that was a bug in our Direct3D wrappers for a second there :) |
04:30:18 | kingofoz | character.nim(1, 9) Error: undeclared identifier: 'dxguid |
04:30:42 | Demos_ | sorry |
04:30:52 | Demos_ | {.link: "dxguid.lib".} |
04:30:58 | Demos_ | same for the others |
04:31:34 | * | yglukhov joined #nim |
04:32:18 | kingofoz | same error: |
04:32:32 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3dcompiler.lib" |
04:32:33 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3d9.lib" |
04:32:33 | kingofoz | d:\labs\urho3d-1.5\build\lib\urho3d_d.lib |
04:32:33 | kingofoz | dxgi.lib |
04:32:33 | kingofoz | dxguid.lib |
04:32:44 | kingofoz | still link d3d9.lib |
04:33:12 | Demos_ | maybe try actually linking to d3d9.lib as well |
04:33:16 | Demos_ | it's strange it requires that |
04:33:17 | * | vegansk quit (Remote host closed the connection) |
04:33:18 | Demos_ | but who knows |
04:33:38 | Demos_ | also, d3d9 is not a system component, so you may need to install the d3d9 dev redist |
04:33:50 | Demos_ | I don't really know since d3d9 was before my time |
04:34:34 | kingofoz | I don't understand |
04:34:47 | Demos_ | {.link: "d3d9.lib".} |
04:34:49 | Demos_ | probably |
04:35:16 | Demos_ | oh |
04:35:18 | Demos_ | link order |
04:35:24 | Demos_ | try using the --link command line option |
04:36:12 | kingofoz | can you give me a complete command? |
04:36:28 | kingofoz | D:\labs\Urhonimo\examples>nim cpp character.nim --link:d3d11.lib |
04:36:28 | kingofoz | Error: arguments can only be given if the '--run' option is selected |
04:36:36 | * | yglukhov quit (Ping timeout: 276 seconds) |
04:37:04 | bozaloshtsh | put the link flag before 'cpp' |
04:37:59 | kingofoz | same error without {...} |
04:39:44 | kingofoz | works now with {...} in the head of the file |
04:40:00 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3dcompiler.lib" |
04:40:00 | kingofoz | "C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\d3d9.lib" |
04:40:00 | kingofoz | d:\labs\urho3d-1.5\build\lib\urho3d_d.lib |
04:40:00 | kingofoz | dxgi.lib |
04:40:00 | kingofoz | dxguid.lib |
04:40:01 | kingofoz | d3d11.lib |
04:40:02 | kingofoz | Creating library d:\labs\urhonimo\examples\character.lib and object d:\labs\u |
04:40:04 | kingofoz | rhonimo\examples\character.exp |
04:40:06 | kingofoz | see above |
04:40:18 | kingofoz | seems it still link d3d9? |
04:43:41 | Demos_ | yeah |
04:44:13 | Demos_ | if so , there's not much we can do about it |
04:44:13 | kingofoz | so actually we fail? |
04:44:21 | Demos_ | wait did it work or not? |
04:44:38 | kingofoz | what? |
04:44:59 | kingofoz | demo can run |
04:45:12 | kingofoz | but seems it links still with dxd9 |
04:45:23 | kingofoz | I pasted the output |
04:52:07 | * | brson joined #nim |
04:53:08 | kingofoz | do I find a real bug for Araq_? |
04:53:18 | kingofoz | :-) |
04:56:58 | * | brson quit (Client Quit) |
04:58:45 | * | space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
05:07:49 | * | yglukhov joined #nim |
05:10:09 | * | Sonderblade quit (Ping timeout: 260 seconds) |
05:12:00 | * | yglukhov quit (Ping timeout: 246 seconds) |
05:22:52 | * | Sonderblade joined #nim |
05:36:39 | * | desophos quit (Read error: Connection reset by peer) |
05:44:05 | * | yglukhov joined #nim |
05:48:05 | * | s4 joined #nim |
05:48:45 | * | yglukhov quit (Ping timeout: 276 seconds) |
06:11:55 | * | Varriount_ quit (Read error: Connection reset by peer) |
06:12:26 | * | Varriount joined #nim |
06:14:13 | * | GangstaCat joined #nim |
06:22:27 | * | hcorion joined #nim |
06:26:12 | * | GangstaCat quit (Quit: Leaving) |
06:31:21 | * | hcorion quit (Remote host closed the connection) |
06:40:38 | * | filcuc joined #nim |
06:49:23 | * | yglukhov joined #nim |
06:55:57 | * | GangstaCat joined #nim |
06:58:39 | * | CARAM__ quit (Ping timeout: 264 seconds) |
06:58:39 | * | AckZ quit (Ping timeout: 264 seconds) |
06:59:15 | * | NhanH quit (Ping timeout: 264 seconds) |
07:02:19 | * | CARAM__ joined #nim |
07:05:09 | * | AckZ joined #nim |
07:05:36 | * | Arrrr joined #nim |
07:05:36 | * | Arrrr quit (Changing host) |
07:05:36 | * | Arrrr joined #nim |
07:15:48 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
07:17:43 | * | NhanH joined #nim |
07:18:21 | * | GangstaCat quit (Quit: Leaving) |
07:32:48 | * | Trustable joined #nim |
07:40:03 | * | ldleworker quit (Ping timeout: 240 seconds) |
07:43:24 | * | ldlework joined #nim |
08:04:02 | * | gokr joined #nim |
08:06:49 | * | dorei joined #nim |
08:58:25 | * | zaquest quit (Read error: Connection reset by peer) |
08:58:55 | * | novavis joined #nim |
09:11:37 | * | Demon_Fox quit (Quit: Leaving) |
09:21:52 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
09:24:34 | * | zaquest joined #nim |
09:27:39 | * | vegansk joined #nim |
09:39:20 | * | rok joined #nim |
09:40:13 | * | MyMind joined #nim |
09:42:05 | * | Sembei quit (Ping timeout: 244 seconds) |
09:54:27 | * | novavis joined #nim |
09:58:05 | * | novavis quit (Client Quit) |
10:00:27 | * | ephja joined #nim |
10:08:33 | * | yglukhov quit (Read error: Connection reset by peer) |
10:10:17 | * | yglukhov joined #nim |
10:13:21 | * | federico3 quit (Ping timeout: 246 seconds) |
10:21:33 | * | federico3 joined #nim |
10:39:03 | * | Arrrr quit (Ping timeout: 240 seconds) |
10:40:21 | * | elrood joined #nim |
10:41:28 | * | Arrrr joined #nim |
11:13:12 | * | gokr quit (Ping timeout: 246 seconds) |
11:14:44 | * | gokr joined #nim |
11:24:01 | * | Pisuke joined #nim |
11:24:40 | yglukhov | dom96, can i write a non-async function, that accepts a callback argument that it can call on the runForever loop? |
11:26:33 | * | MyMind quit (Ping timeout: 268 seconds) |
11:27:32 | cheatfate_ | yglukhov, i think you want to extend current poller to poll other libraries? |
11:27:45 | * | gunn_ joined #nim |
11:28:20 | yglukhov | not really. i basically want to call a function on main thread from another thread. |
11:28:43 | yglukhov | if youre familiar with Cocoa thats performSelectorOnMainThread |
11:30:11 | yglukhov | in other words, i want to write async procs in nodejs style. the procs don't return any futures, but call handlers upon completion |
11:30:50 | * | gunn quit (Ping timeout: 276 seconds) |
11:37:25 | cheatfate_ | yglukhov, it looks like you dont need async then just use selectors.nim and dispatch callbacks on your own |
11:38:20 | * | GangstaCat joined #nim |
11:39:05 | dom96 | yglukhov: Just use `poll` instead of `runForever` and call whatever function you want in between poll's |
11:43:35 | * | arnetheduck joined #nim |
11:46:12 | cheatfate_ | dom96, i think poll() must be private, because if you start poll() in handler you will also can start deep recursion |
11:46:39 | ephja | then how should it be invoked? |
11:46:57 | dom96 | cheatfate_: by that logic runForever() and waitFor() should be private too then |
11:47:41 | dom96 | I think I will simply detect whether poll() has been called from within a handler and if so throw an error. |
11:48:11 | ephja | that's better than not being able to invoke it ;) |
11:49:30 | cheatfate_ | maybe calls to poll() must be queued too |
11:51:06 | cheatfate_ | dom96, in async program almost all functions are handlers or just procs invoked from handlers, so if you add this check, you will throw an error all the time |
11:52:45 | ephja | I don't understand. Why would this be the case if 'poll' is not called inside a handler? |
11:53:37 | ephja | if it's not, then no errors would be signalled, right? |
11:53:48 | dom96 | what? `poll` is the procedure which would do the queue processing |
11:53:54 | dom96 | so pushing it to the queue wouldn't work |
11:55:31 | cheatfate_ | dom96, yeah its a wrong way to queue it... but using it in handlers is also a big problem... just because all callbacks from poll() will be dispatched in context of handler |
11:55:45 | cheatfate_ | so recursion will start... |
11:55:54 | ephja | manual looping would make things more obvious, but we could also mention how simple runForever actually is |
11:56:31 | dom96 | like I said, you *shouldn't* be using it in handlers |
11:56:53 | ephja | and the semantic checking would catch these mistakes |
11:57:37 | cheatfate_ | dom96, i think we just need to have separate callback queue witch can be dispatched in runForever |
11:58:53 | cheatfate_ | so we can add some kind of python's call_soon(), call_at() without any problems with recursion |
11:59:22 | * | rok quit (Quit: rok) |
11:59:50 | dom96 | cheatfate_: yes, I already agreed that we should do that. |
12:02:44 | yglukhov | dom96: please consider the case with performSelectorOnMainThread, how can i do that? |
12:03:26 | cheatfate_ | dom96, also i think we need to have AsyncLoop object to store this queue and dispatcher there and this can help us to change type of selector to use, so we can use IOCP and/or simple select |
12:03:31 | yglukhov | user calls my function which should return immediately, but it will schedule some background task, and then needs to callback |
12:06:01 | * | gokr quit (Ping timeout: 250 seconds) |
12:06:50 | * | BitPuffin joined #nim |
12:11:39 | federico3 | is it possible to read the value of a #define from a C header ? |
12:12:21 | yglukhov | federico3: you can't literally read it, but you can define it as an importc var |
12:12:37 | yglukhov | and then use it in runtime |
12:16:44 | yglukhov | dom96: so as far as i can see, there needs to be some mechanism of creating dummy sockets (pipes?), so that you register the socket in the dispatcher, assign a read cb (handler) to it, signal (write) to it on another thread. |
12:17:25 | federico3 | yglukhov: are you sure? "error: called object is not a function or function pointer" |
12:17:46 | yglukhov | federico3: a gist would help ;) |
12:17:47 | ephja | shouldn't it be a 'var'? |
12:19:07 | yglukhov | var MY_IMPORTED_MACRO {.importc, header: "<myheader.h>".} : cint |
12:19:10 | yglukhov | smth like that |
12:19:21 | federico3 | thanks! |
12:19:30 | ephja | or 'let'? |
12:20:03 | yglukhov | let might need initial value, which we cant know |
12:21:40 | dom96 | yglukhov: hrm. Can you describe your use case a bit more concretely? |
12:22:24 | dom96 | If you want to call something on a different thread then you will need to perform the communication yourself |
12:22:50 | dom96 | I'm not sure what the async loop has to do with it, unless that something is async, but you said it's not? |
12:23:16 | yglukhov | ok, here goes. I want to write a function that does http request: proc doHttpRequest(url: string, handler: proc(response: string)): void |
12:23:30 | yglukhov | please note the handler and the void type |
12:25:19 | yglukhov | i want this function to work in js (with XMLHTTPRequest and native js runloop), in and SDL2 program, with its own runloop, and with nim's asyncio runloop, depending on user's build configuration. |
12:26:06 | yglukhov | when working with SDL i perform the request on a background thread, and then send an event to SDL runloop, so that it calls the handler on the main thread. |
12:26:23 | yglukhov | i want to be able to do the same with asyncio loop. |
12:27:26 | yglukhov | kinda nodejs style. does that make sense? |
12:28:13 | yglukhov | i can write a gist, if youd like |
12:28:15 | cheatfate_ | dom96, looks like yglukhov needs callback queue/call_soon staff too :) |
12:28:17 | dom96 | I think you will need to handle this yourself then. I'm not sure how SDL works here, but there is nothing in asyncdispatch that allows you to tell it "run this callback on the main thread" |
12:29:21 | dom96 | maybe i'm not understanding it |
12:29:40 | dom96 | What I would do is send the response via a Channel |
12:29:43 | yglukhov | dom96: "run this callback on the main thread" - is exactly what i want |
12:29:47 | dom96 | and read the channel in the main thread |
12:30:29 | cheatfate_ | dom96, its an example of callback queue usage :) "call this function on the main thread" |
12:30:57 | dom96 | cheatfate_: well then our queue should be a channel |
12:32:37 | dom96 | damn, they released Chapter 6 quickly. |
12:32:38 | yglukhov | dom96: can i somehow "inject" the "channel reader function" into existing asyncioloop, given that i can do this only from a non-async proc? |
12:33:32 | yglukhov | channels might sound really close to what i want. a channel could conceptually represent the event queue |
12:34:17 | dom96 | yglukhov: sure. Like I said, just do something like this: while true: asyncdispatch.poll(); let (received, msg) = respChan.tryRecv(); if received: echo msg |
12:34:18 | cheatfate_ | yglukhov, you can just create asyncsocket and use asyncdispatch.addRead() but you need to get this socket readable... |
12:35:23 | cheatfate_ | yglukhov, and also this method not works on windows |
12:35:43 | * | def-- joined #nim |
12:36:04 | * | def- quit (Read error: Connection reset by peer) |
12:36:04 | * | def-- is now known as def- |
12:36:11 | * | cheatfate_ is now known as cheatfate |
12:37:40 | yglukhov | dom96: considering that i'm writing a library that defines only one function that i wrote previously, and i can't tell my user that he should do anything else except runForever()? |
12:38:20 | yglukhov | give me a couple of mins to make a gist. |
12:40:17 | dom96 | alternatively you can just create async proc which checks your channel |
12:40:33 | dom96 | and run it in the "background" with `asyncCheck` |
12:42:59 | dom96 | oh, and you will need to sleepAsync to give the rest a chance to run |
12:44:58 | yglukhov | dom96: what do you think of this: https://gist.github.com/yglukhov/a03b53918fde20b429a0c1f31eb23742 |
12:50:19 | dom96 | yglukhov: I would do the channel reading in doHttpRequest |
12:50:26 | dom96 | can you make doHttpRequest return a Future? |
12:50:30 | yglukhov | nope |
12:50:59 | dom96 | well, it should still work |
12:51:06 | yglukhov | meanwhile, can i await for channel msg? |
12:51:07 | dom96 | I'll edit the gist |
12:51:33 | dom96 | is doHttpRequest called in the main thread? |
12:51:38 | yglukhov | yes |
12:55:05 | * | cheatfate quit (Quit: Leaving) |
12:55:25 | dom96 | oh, damn :\ |
12:57:21 | niv | dom96: hey! i remember reading somewhere that there was the idea of making asyncdispatch and threads compatible somehow, so that distinct async handlers can run on different threads. is that a thing or did i dream that up? |
12:57:53 | dom96 | yglukhov: something like this might work https://gist.github.com/dom96/2f6fd3b887ac755776544ec4006b94d0 |
12:58:48 | yglukhov | dom96: that's really great, looks like 99%, except for line 9 =) |
12:59:09 | yglukhov | i mean, i already can live with that, but still... =) |
12:59:15 | dom96 | yglukhov: what's wrong with it? :) |
12:59:32 | dom96 | you can change the '1000' |
13:00:05 | dom96 | niv: it is a thing, but it's difficult. |
13:00:38 | yglukhov | i mean, it's still "polling", which is bad. it can be smart enough, but still not the best. if it was like "await respChan.recv()" it would be much prettier |
13:00:50 | * | novavis joined #nim |
13:02:49 | ephja | why not use tryRecv or peek? |
13:03:20 | yglukhov | it would still poll |
13:03:32 | yglukhov | * you would still have to poll |
13:03:59 | * | cheatfate joined #nim |
13:04:00 | dom96 | yglukhov: yes, that would be nice :) |
13:06:25 | * | cheatfate__ joined #nim |
13:06:26 | * | cheatfate__ quit (Client Quit) |
13:23:05 | Trustable | Hi all. I'm looking for the best way to create a web application in Nim. I other use PHP, Python, Java, Node.js, Go or Elixir, but I want to use Nim. The web application should get the requests from Apache. What do you think is better: passing the request as SCGI or as raw HTTP request? Is there any notable alternative to AsyncHttpServer? |
13:27:17 | * | s4 quit (Quit: Konversation terminated!) |
13:28:27 | ephja | Trustable: jester uses it https://github.com/dom96/jester |
13:29:04 | dom96 | asynchttpserver is currently the best option |
13:29:18 | dom96 | Pretty sure scgi is still synchronous |
13:30:53 | Trustable | dom96: yes, the the module http://nim-lang.org/docs/scgi.html is. But how about in general? |
13:31:40 | dom96 | Trustable: in general you should use asynchttpserver |
13:31:42 | dom96 | nimforum uses it |
13:31:45 | dom96 | with nginx |
13:35:36 | cheatfate | Trustable, why you want to use Apache? you can easily satisfy Apache speed even with Bash |
13:35:38 | * | GangstaCat quit (Quit: Leaving) |
13:36:59 | Trustable | At the moment I use Apache just because it's the default. I could think of switching to nginx. |
13:43:17 | dom96 | Trustable: you should be able to use Apache too |
13:44:08 | Trustable | Apache or nginx was not my question. But passing request as SCGI or HTTP? |
13:44:53 | dom96 | HTTP |
14:02:09 | Trustable | dom96: ty, I'm curious about why SCGI exists at all, it seems to be useless. |
14:03:15 | Trustable | dom96: btw, when do you install SSL for https://nim-lang.org/ ? |
14:06:34 | dom96 | Trustable: dunno, guess it's faster in some circumstances |
14:07:17 | dom96 | Trustable: whenever lets encrypt supports Win XP |
14:07:21 | Araq_ | Trustable: scgi is a protocol, http a mess. :P |
14:08:00 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
14:10:04 | Trustable | Araq_: probably you are right :D |
14:10:38 | Trustable | dom96: Let's Encrypt works without any issues under Firefox and Chrome for me. |
14:10:49 | Trustable | (WinXP VM) |
14:14:35 | Varriount | dom96: Eh, anyone who is still using WinXP for everyday activities deserves some discomfort. |
14:15:32 | Trustable | Varriount: absolutely correct :) |
14:16:02 | Varriount | Besides, isn't the problem related to the out-of-date root certificate store for WinXP? |
14:16:15 | Varriount | That's not really something that can be worked around. |
14:19:44 | Trustable | Varriount: Do you mean your last sentence that way? This can be worked around by adding the root certificate. |
14:20:20 | Varriount | Trustable: I mean, it can't be easily worked around from server-side. |
14:20:55 | Trustable | ok |
14:36:08 | * | pregressive joined #nim |
14:44:39 | * | deavmi joined #nim |
14:44:41 | deavmi | ello all |
14:44:49 | deavmi | Araq_: Hi :) |
14:49:58 | Araq_ | hi |
14:50:32 | * | Tristen joined #nim |
15:10:46 | * | GangstaCat joined #nim |
15:14:18 | * | Amun_Ra quit (Ping timeout: 244 seconds) |
15:15:24 | * | Amun_Ra joined #nim |
15:18:24 | deavmi | Araq_: Just wanted to say I love Nim |
15:18:54 | deavmi | so much that I started writing my own tutorial on it as I learn (as that is how I like to learn - by writing stuff out with good explanations) |
15:23:39 | elrood | try to make notes of the oddities, pitfalls and unintuitivities as well as you go, these are usually the most valuable from a language design standpoint and will help smooth out the rough edges |
15:27:06 | * | fredrik92 joined #nim |
15:27:45 | dom96 | deavmi: brilliant! Writing a tutorial like that will result in the best kind of tutorial because you don't have to predict where people will run into trouble :) |
15:29:51 | deavmi | dom96: It's up hey. **Gets link** |
15:30:04 | deavmi | It's still being written as I a quite the noob and still a student in Grade 11 at school |
15:30:13 | deavmi | but still it's in depth I think 9and that's good) |
15:30:22 | * | enthus1ast joined #nim |
15:30:33 | deavmi | dom96: here's the link - https://walkman.carteronline.net/~deavmi/nim/ |
15:31:02 | Tristen | l |
15:33:16 | * | dorei quit (Quit: Page closed) |
15:34:21 | * | PMunch joined #nim |
15:34:32 | deavmi | dom96: It's on github as well - so you can make changes there and they will be built onto the documentation (tutorial) |
15:34:40 | deavmi | dom96: https://github.com/deavmi/LearnNim |
15:37:10 | deavmi | elrood: I am putting lots of effort into it and adding the problems I encountered when doing it so yeah, it is "personal" if that is the correct word. From eyes of a noob. |
15:44:21 | * | filcuc quit (Read error: Connection reset by peer) |
15:52:14 | elrood | great. well, while a personal touch and subjectivity certainly won't hurt, you might want to consider toning down the style a little, as awesomest ever might just be a tad too much fanboyish and somewhat offputting for other newcomers ;) have fun with it |
15:53:32 | deavmi | elrood: True. Will do that. The front page is something I will fix later (should do it now) but yeah. Thanks, I will have fun with it ;) |
15:54:57 | * | yglukhov quit (Ping timeout: 260 seconds) |
15:57:29 | * | brson joined #nim |
16:03:34 | * | Jesin quit (Remote host closed the connection) |
16:06:39 | deavmi | I need a keyboard that won't hurt my wrists |
16:13:40 | * | alex___ joined #nim |
16:14:26 | alex___ | does nim have an implementation of bounded channels (i.e. for backpressure; with limited message slots) ? |
16:29:50 | deavmi | Araq_: Does the pre-processor get rid of comments #hello? |
16:30:25 | * | yglukhov joined #nim |
16:31:03 | elrood | deavmi, get one of these: https://www.trulyergonomic.com . or, if that's not within your price range, you could try to find one of these http://i.imgur.com/tuAM0.jpg or http://xahlee.info/kbd/ms_keyboard/i/Microsoft_Comfort_Curve_keyboard_2000.jpg |
16:32:15 | deavmi | elrood: That looks great - - Acknowledgements: acks.md |
16:32:33 | deavmi | elrood: I should invest in something like that. |
16:32:41 | dom96 | I got one of these recently: https://www.amazon.co.uk/gp/product/B000YBZZU0/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1. It's pretty nice to rest your wrist on. |
16:32:55 | deavmi | elrood: I have the third link that you said, the comfort curve. |
16:33:12 | deavmi | I'm using a bloody Razer Deathstalker. So yeah. not good at all for health. |
16:34:39 | deavmi | dom96: My word that looks handy. Funny thing is, right now my left hand is paining, not my right hand (my mouse hand) https://www.amazon.co.uk/gp/product/B000YBZZU0/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1 |
16:34:54 | elrood | probably in the end you'll be better of or even more comfortable with a simple wristpad or a decent mechanical keyboard in standard layout, but can't hurt to try different things, ymmv |
16:35:00 | elrood | *off |
16:35:14 | yglukhov | dom96: could you have a look at https://github.com/nim-lang/Nim/issues/4120 please? |
16:35:18 | deavmi | "I should cut my left hand off" ~Deavmi 2016 |
16:36:19 | deavmi | Is threading simple to do in Nim. I honestly have never EVER done multi-threading and was just wondering |
16:36:46 | dom96 | I'm starting to worry that my wrists will begin to seriously hurting sometime soon (been in front of the computer programming since I was 10, its been 10 years since then and I never really cared that much about ergonomics). |
16:36:56 | dom96 | *seriously hurt |
16:37:08 | dom96 | yglukhov: will do |
16:37:35 | dom96 | yglukhov: ahh, it's because runForever calls poll(500) |
16:37:50 | dom96 | and the timers currently only run after the call to epoll/kqueue |
16:37:52 | deavmi | dom96: Better get something good now |
16:38:22 | deavmi | Found this - pretty good for networking classes - https://github.com/alex/what-happens-when (#justrandom) |
16:38:45 | dom96 | deavmi: yeah... It's not easy when I know I will be moving out in the next few months :) |
16:39:00 | * | space-wizard joined #nim |
16:39:24 | deavmi | dom96: I just realised something I will still be sitting like the guy in the diagram on the left (in https://www.trulyergonomic.com/store/index.php) because my arms are long |
16:39:31 | dom96 | deavmi: your tutorial looks nice btw |
16:39:54 | deavmi | dom96: Thanks. It's mkdocs if you want to know (the default theme is best for non-distractions) |
16:40:05 | deavmi | and the default theme just looks good. |
16:40:17 | flyx | deavmi: you need the right distance matching your arm length, obviously |
16:40:21 | dom96 | deavmi: maybe you could roll your chair away from your desk? :) |
16:40:29 | deavmi | dom96: I could I guess |
16:40:40 | deavmi | Ctrl+Zoom wheel on firefox |
16:40:45 | deavmi | will help squinting |
16:40:53 | deavmi | at small text like qwebirc irc |
16:41:08 | * | flyx has a truly ergonomic and loves it |
16:41:24 | * | arnetheduck quit (Ping timeout: 260 seconds) |
16:41:31 | deavmi | flyx: I must get one! |
16:41:33 | deavmi | lol |
16:42:05 | * | rok joined #nim |
16:42:15 | flyx | being able to modify the firmware is also great |
16:43:21 | deavmi | flyx: wow, of the keyboard's chip? |
16:43:28 | deavmi | Or as in the programmable (macro keys) |
16:43:29 | deavmi | ? |
16:43:34 | elrood | dom96, deavmi, as far as research goes, the things that are the most unergonomic actually aren't related to typing but altenating between keyboard and mouse, sideway movement with pressed buttons and using the mouse wheel, afair |
16:43:54 | flyx | deavmi: yeah, they even have a graphical interface for it: https://www.trulyergonomic.com/store/layout-designer--configurator--reprogrammable--truly-ergonomic-mechanical-keyboard/ |
16:44:01 | deavmi | elrood: So smaller keyboard then? |
16:44:10 | deavmi | flyx: What OS do you run? |
16:44:16 | dom96 | elrood: interesting |
16:44:37 | flyx | deavmi: all of them. for private things mostly OSX though |
16:45:07 | deavmi | flyx: I see. I can have my own key caps. Lol |
16:45:38 | flyx | I modified the NumLock to switch Cmd and Ctrl around so I can use it on both OSX and Windows/Linux while having the same keyboard shortcuts |
16:46:01 | deavmi | flyx: Awesome |
16:46:07 | deavmi | bloody cmd key |
16:46:19 | deavmi | flyx: Ever ran haiku? |
16:46:23 | flyx | no. |
16:46:51 | deavmi | flyx: It's bloody nice. I wonder what Haiku+SSD would be like. Probably extremely fast |
16:47:01 | dom96 | Looks like the people want Slack https://twitter.com/nim_lang/status/725289411412414465 |
16:47:27 | flyx | what's a slack? |
16:47:40 | deavmi | its for coding and chat |
16:47:56 | deavmi | Like you can add intergrations so that when you push commits it sends them to a slack chat room |
16:48:05 | deavmi | Basically a business tool |
16:48:06 | dom96 | https://slack.com/ |
16:48:15 | deavmi | project management - bestter description |
16:48:25 | elrood | deavmi, not necessarily a smaller keyboard (you can always go tenkeyless, of course) but actually using your mouse less and keyboard shortcuts more. and vim ;) |
16:48:57 | deavmi | I can't use vim to save my life |
16:48:59 | deavmi | and yeah |
16:49:05 | flyx | um, how is it different from IRC? |
16:49:06 | deavmi | Maybe I will learn it, but for now... nano |
16:49:16 | * | alex___ quit (Ping timeout: 250 seconds) |
16:49:16 | dom96 | flyx: it's more noob-friendly :P |
16:49:29 | deavmi | flyx: More than one room poer account I think and yeah, makes adding intergartions (like the github one) easier |
16:49:35 | deavmi | dom96: basically |
16:49:42 | deavmi | * poer=per |
16:50:01 | * | flyx is in a lot of rooms with one account. |
16:50:05 | deavmi | Has a nice app I think on iOS and android (never used the android one) |
16:50:14 | flyx | well anyway, if it helps people choose Nim |
16:50:25 | flyx | as long as this channel doesn't get deprecated |
16:50:26 | deavmi | Yeah. |
16:50:33 | deavmi | Yeah, cause I like IRC |
16:50:48 | deavmi | And I could imagine a slack room getting completely blown up with github spam |
16:50:59 | deavmi | (well atleats that's what I did to my slack room) |
16:51:06 | * | enthus1ast quit (Ping timeout: 276 seconds) |
16:51:42 | dom96 | I would possibly create a bridge between IRC and Slack |
16:52:12 | dom96 | Biggest problem with Slack will be the fact that they only store 10K messages |
16:52:28 | dom96 | but if it's bridged to IRC then NimBot can take care of it :) |
16:52:33 | deavmi | We have IRC logs so yeah - I downvote for slack then |
16:53:11 | elrood | it's easy enough to get a bot to report commits on irc, if anybody really wants that. fractioning the community and attention between several services should be more of a concern, imho |
16:53:34 | niv | is there a way to make vaargs work on async procs? its backed by an openarray as far as i read, so that's a no i guess? |
16:53:43 | dom96 | Well, like I said, I would provide a bridge. So it would only be an alternative way to connect with everyone. |
16:53:54 | deavmi | Does anyone know here: Are the comments in nim code removed by the pre-porcessor or ignored by the compiler? |
16:54:01 | dom96 | niv: sorry, no. |
16:54:29 | dom96 | deavmi: Nim doesn't really have a pre-processor. |
16:54:49 | niv | dom96: i figured, thx for confirming |
16:54:58 | deavmi | Well then should I say the pre-processing code of the compiler |
16:55:06 | deavmi | If you get what I mean |
16:55:51 | niv | dom96: i wrote a nim redis library with less features than yours and proper list handling. i just ran it in prod mode and benchmarked it, and it is just as fast as the official C library. thats pretty awesome i think. |
16:56:27 | dom96 | niv: cool. Guess async works fairly well :D |
16:56:47 | niv | yeah. i benchmarked it against non-async and there was no difference. also adding ten async workers didnt change the numbers |
16:57:05 | niv | the only thing that could make this faster would be more connections and multiple native threads |
16:57:14 | niv | .. hence my question about async multithreading ;) |
16:57:39 | dom96 | deavmi: IIRC ordinary comments are removed, but doc comments end up in the AST (so macros can access them). |
16:57:49 | dom96 | This might actually be the case for ordinary comments too though |
16:57:56 | deavmi | dom96: By the compiler then |
16:57:59 | deavmi | dom96: okay |
16:58:06 | deavmi | dom96: Are doc comments strings? |
16:58:12 | dom96 | deavmi: no |
16:58:16 | dom96 | deavmi: # ordinary comment |
16:58:20 | dom96 | deavmi: ## Doc comment |
16:58:26 | deavmi | dom96: I see. |
16:58:42 | deavmi | dom96: Difference between the two other than their prefixes? |
16:59:07 | dom96 | deavmi: `nim doc` will include the latter in the generated documentation |
16:59:35 | deavmi | I see |
16:59:41 | dom96 | niv: hrm, really? No difference vs. non-async, that's a bit surprising. |
16:59:57 | niv | i was probably cpu bound |
17:00:07 | deavmi | So if I want someone to see the comment in the docs built by nim doc I use `##` but if i don't and just want to make a note for myself I use `#` |
17:03:36 | deavmi | dom96: Going to add a page on doc comments tomorrow once I test out the doc comment feature. Thanks for telling me aboiut this. |
17:04:25 | dom96 | deavmi: take a look at some of the modules in the stdlib, plenty of examples of doc comments in there. |
17:09:08 | * | yglukhov quit (Remote host closed the connection) |
17:09:51 | * | novavis joined #nim |
17:23:55 | deavmi | dom96: Will do |
17:26:31 | deavmi | dom96: My word that is sexy (I love nim doc) - https://walkman.carteronline.net/~deavmi/nimmy |
17:26:38 | deavmi | I see how these cpomments work now |
17:26:48 | dom96 | :) |
17:27:35 | deavmi | Just realised something |
17:27:40 | deavmi | The source for this: https://walkman.carteronline.net/~deavmi/nimmy |
17:27:43 | deavmi | is: |
17:27:53 | deavmi | ##Hello #d ##bye #f echo("hello World") |
17:28:15 | deavmi | On seperate lines; yet num doc puts the Hello and bye right next to each other on the generated page |
17:36:16 | * | brson quit (Ping timeout: 252 seconds) |
17:36:53 | * | bozaloshtsh quit (Quit: leaving) |
17:39:40 | * | bozaloshtsh joined #nim |
17:40:14 | * | bozaloshtsh left #nim (#nim) |
17:44:00 | deavmi | dom96: Doc comments - https://walkman.carteronline.net/~deavmi/nim/doc-comments/ |
17:50:31 | * | fredrik92 quit (Ping timeout: 250 seconds) |
17:51:35 | * | brson joined #nim |
17:53:36 | * | bozaloshtsh joined #nim |
18:00:25 | ephja | deavmi: I'm diggin' that minimalism |
18:00:44 | deavmi | ephja: of what? the docs? |
18:01:09 | ephja | yeah. quality over quantity |
18:02:27 | * | PMunch quit (Ping timeout: 268 seconds) |
18:06:33 | * | yglukhov joined #nim |
18:06:53 | * | bozaloshtsh quit (Changing host) |
18:06:53 | * | bozaloshtsh joined #nim |
18:08:12 | * | bozaloshtsh left #nim ("WeeChat 1.4") |
18:08:14 | * | bozaloshtsh joined #nim |
18:09:52 | * | Matthias247 joined #nim |
18:10:44 | niv | dom96: question - how do I await on a future without using {.async.}? |
18:10:49 | niv | yield? |
18:11:08 | dom96 | you can't |
18:11:23 | * | GangstaCat quit (Quit: Leaving) |
18:11:24 | dom96 | 'await' is only possible inside an {.async.} proc |
18:11:27 | niv | :( apparently async clashes with generic return types. complains that it needs <proc>Iter implementation |
18:11:55 | bozaloshtsh | you could use waitFor to wait while blocking in a non async proc |
18:12:41 | dom96 | bozaloshtsh: That's usually a bad idea |
18:12:54 | niv | https://gist.github.com/niv/a1d5b07ff5223191cf78136442595a4f sorry to bother you with all my async fringe cases :D |
18:13:09 | dom96 | niv: no need to be sorry :) |
18:13:57 | dom96 | niv: there is a bug for this: https://github.com/nim-lang/Nim/issues/3568 |
18:13:58 | niv | the plan for that sample case is to eventually expand T into all redis data types and perform validation |
18:14:10 | dom96 | so I'm afraid that generics are not supported right now |
18:14:26 | niv | oookay |
18:14:38 | bozaloshtsh | dom96: bad idea why? |
18:14:50 | dom96 | bozaloshtsh: because you're then calling poll() from within poll() |
18:15:12 | bozaloshtsh | ah, so other things getting awaited for are screwed with? |
18:15:44 | dom96 | not really, it just kind of defeats the purpose of async. |
18:16:04 | dom96 | and there are issues which /may/ occur, like infinite recursions |
18:16:09 | bozaloshtsh | sometimes I need to handle exceptions but that's not allowed in async procs so I'm forced to use waitFor |
18:16:27 | dom96 | you can handle exceptions fine without a try.. catch |
18:16:31 | dom96 | just do: |
18:16:35 | dom96 | var fut = asyncProc() |
18:16:36 | dom96 | await fut |
18:16:39 | dom96 | if fut.failed: ... |
18:16:52 | niv | but doesnt await(x) raise the exception? |
18:16:59 | dom96 | nope |
18:17:42 | dom96 | although, sadly, there is a chance that asyncProc() raises an exception too |
18:17:44 | niv | how are these handled? |
18:18:03 | dom96 | or actually... hrm, maybe there isn't. |
18:18:05 | niv | how does someone calling await x() eventually get handed the exception? |
18:18:12 | dom96 | (if there is a chance, then that's a bug) |
18:18:41 | niv | is it when retrieving the value from the future? |
18:18:43 | dom96 | `await fut` is just `yield fut` |
18:18:57 | dom96 | whereas, `let value = await fut` is `yield fut; let value = fut.read()` |
18:18:57 | ephja | just define concrete procs for now |
18:19:05 | dom96 | the read() is what raises the exception |
18:19:12 | dom96 | niv: indeed |
18:19:52 | niv | thank you, that's good to know |
18:21:01 | dom96 | btw, please let me know if there is anything I could do to make that more clear. |
18:21:37 | niv | not to me, but it certainly should be in the docs |
18:21:45 | niv | even better would be if try/except worked transparently :p |
18:21:48 | dom96 | Whether it is more documentation, or a rewrite of async :) |
18:22:31 | niv | its really not obvious at all how async works internally, and thats fine if you can just use it as-is, but if you have to watch out for these hundreds of corner cases, a bit more documentation wouldnt go amiss |
18:22:34 | dom96 | I think the best way to see how it works is by example |
18:23:05 | niv | then again, hyperbole aside, most of those issues are actual bugs and will be fixed in time |
18:23:09 | dom96 | so don't be afraid to write small async procs which raise exceptions |
18:23:11 | dom96 | and see how they behave |
18:23:26 | dom96 | indeed |
18:24:05 | ephja | before 1.0? that would be neat |
18:24:52 | niv | that puts a stop to my grand redis world domination master plan. i really want to keep it async |
18:24:54 | ephja | in addition to auto-gpuification, concepts and a brain-signal interface |
18:25:12 | ephja | niv: you can't work around it? |
18:25:19 | niv | sure, but i'll have to rethink! |
18:25:37 | * | bozaloshtsh quit (Ping timeout: 250 seconds) |
18:26:03 | dom96 | niv: sorry, I know it sucks :( |
18:26:20 | * | niv shrugs |
18:26:27 | niv | its not like nim is 1.0. these things are expected |
18:26:41 | niv | its still fun playing with it and it only gets ever better with each release |
18:26:57 | dom96 | That's good to hear :) |
18:28:14 | * | Ven joined #nim |
18:28:40 | dom96 | Well, I just tried this, and it raises an exception: https://gist.github.com/dom96/2bdf875a1110532394377e763643d73f |
18:28:43 | dom96 | That's a problem :\ |
18:29:23 | niv | i feel a bit bad, poking at the corner cases and bugs pop up left and right :p |
18:30:02 | dom96 | if only my professors would give me marks for fixing these... |
18:30:14 | deavmi | dom96: lol |
18:30:24 | deavmi | What's Araq_ real name |
18:30:30 | deavmi | Andreas .....something with a B |
18:30:48 | dom96 | Sadly, I must instead spend time writing a board game in Java. |
18:30:56 | dom96 | deavmi: Rumpf |
18:31:06 | deavmi | dom96: java eheh. Not bad language in terms of learning concepts/ |
18:31:09 | niv | dom96: ugh sorry to hear. |
18:31:14 | Arrrr | Cool, which game? |
18:31:17 | deavmi | No learning of a language goes to waste, bsedides brainf*ck |
18:31:21 | niv | is it go? |
18:31:22 | dom96 | Arrrr: Game of Life Adventures Edition lol |
18:31:32 | deavmi | Game oif Life |
18:31:34 | deavmi | lekker |
18:31:44 | deavmi | what about Half Life 3 in java (teh lag) |
18:31:47 | niv | dom96: cant you just add a java compiler output for nim and write it in nim? |
18:31:52 | flyx | with some languages, you learn how not to do things. |
18:32:01 | deavmi | flyx: That to. |
18:32:04 | niv | or maybe a jvm implementation. |
18:32:08 | dom96 | niv: hah, maybe |
18:32:17 | dom96 | I think that would take more work |
18:32:19 | Arrrr | Well, you will kill it. What's the difference between the classic and the adventures edition? |
18:32:21 | niv | just say you misunderstood and heard javascript, less work |
18:32:24 | deavmi | But nothing goes to waste, it works your brain to think in abstract ways, and that is what is needed |
18:32:29 | dom96 | Arrrr: No idea. |
18:32:34 | deavmi | niv: lol |
18:32:38 | deavmi | write in nim, compile to js |
18:32:46 | niv | yep |
18:33:08 | dom96 | brb |
18:33:12 | deavmi | dom96: k' |
18:34:08 | deavmi | My tutorial will be better than this - https://en.wikibooks.org/wiki/Nimrod_Programming |
18:34:22 | deavmi | that book is so unfinished with broken english i just can't be arsed |
18:34:39 | deavmi | "A course from the very beginning to the end with nimrod." |
18:35:01 | deavmi | more like "A course from the very beginning to the [finish book pls] with nimrod." |
18:35:41 | Arrrr | Nimrod, now that was a magnificient name |
18:36:39 | ephja | there's a WIP PHP generator, right? |
18:36:55 | ephja | I refuse to write JS and PHP code manually ;) |
18:37:21 | * | jonasac joined #nim |
18:39:20 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:40:06 | * | jonasac quit (Client Quit) |
18:40:19 | Tristen | write php manually? |
18:40:28 | Tristen | How would you do it automagically? |
18:40:39 | Tristen | btw I am Deavmi (just using irssi) |
18:40:47 | flyx | slam your head on the keyboard? |
18:40:51 | flyx | oh wait, that was perl |
18:40:57 | deavmi | flyx: XD |
18:41:05 | deavmi | Perl and the dollar signs |
18:41:12 | * | GangstaCat joined #nim |
18:41:12 | deavmi | Bash did it right in my opinion. |
18:41:14 | deavmi | But perl |
18:41:24 | deavmi | just wanted to get on that UNIX BANDWAGON SYNTAX |
18:41:29 | deavmi | * UNISH SHELL |
18:41:40 | deavmi | I can't spell. I give up. My jokes always back fire. |
18:41:42 | flyx | Perl 6 has some interesting stuff |
18:41:48 | niv | i believe that's called a write-only language? |
18:41:49 | deavmi | such as? |
18:41:57 | deavmi | write0only? |
18:42:10 | deavmi | I <3 Bash. |
18:42:16 | niv | as in, rewriting is faster than trying to understand the code |
18:42:39 | flyx | it has syntax for defining grammars |
18:42:49 | deavmi | I can;t do regex but I will learn it as I want to do programming language development hen I am older and the Gods of lexers told me its helpful (as in VERY important) |
18:42:58 | deavmi | flyx: grammars as in syntax |
18:42:59 | * | desophos joined #nim |
18:43:04 | deavmi | flyx: example? |
18:43:23 | flyx | https://doc.perl6.org/language/grammars |
18:44:35 | * | brson quit (Ping timeout: 244 seconds) |
18:47:42 | ephja | it's part of the language? how retro ;) |
18:47:51 | * | silven quit (Ping timeout: 246 seconds) |
18:48:55 | deavmi | The Nim community is the best community. |
18:48:56 | * | silven joined #nim |
18:49:22 | deavmi | Especially because these rooms are so quite but helpful (probably due to the quiteness) |
18:49:34 | dom96 | deavmi: Someday I will put that as a quote on the Nim front page :) |
18:49:48 | deavmi | what |
18:49:56 | deavmi | the Nim community is the best community |
18:50:15 | deavmi | well quite frankly it comes in second, my Catholic Church community is the best cimmunity IMHO |
18:50:22 | deavmi | but Nim comes in at second place |
18:50:56 | ephja | blasphemy |
18:50:57 | deavmi | dom96: Have a quote widget that updates and goes through #Nimquotes |
18:51:16 | deavmi | ephja: How that is blasphemy I do not know... |
18:51:24 | deavmi | ephja: ? |
18:52:09 | * | Tristen quit (Quit: leaving) |
18:53:57 | ephja | the nim god will not be pleased |
18:54:05 | ephja | it's a joke, and now I'm spending too much time on IRC again |
18:54:46 | Arrrr | We are followers of Fra Dolcino here https://www.wikiwand.com/en/Fra_Dolcino |
18:56:06 | ephja | I see |
18:56:20 | ephja | fancy menu |
18:59:23 | * | desophos quit (Remote host closed the connection) |
19:00:08 | * | deavmi quit (Ping timeout: 250 seconds) |
19:02:27 | * | fredrik92 joined #nim |
19:02:29 | ephja | was he offended by that? |
19:02:59 | Arrrr | Did he leave? |
19:04:02 | ephja | yes |
19:04:35 | dom96 | I think his client just timed out |
19:04:44 | dom96 | Doesn't mean he explicitly left |
19:04:48 | dom96 | but also doesn't mean he didn't |
19:05:44 | ephja | I know. It's a common occurrence with browser clients |
19:06:01 | * | desophos joined #nim |
19:06:10 | GangstaCat | deavmi |
19:06:26 | GangstaCat | oups sorry, would like to Ctrl+F |
19:17:00 | * | desophos quit (Remote host closed the connection) |
19:18:23 | * | desophos joined #nim |
19:24:17 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
19:26:08 | * | novavis joined #nim |
19:33:27 | * | Arrrr quit (Quit: WeeChat 1.4) |
19:34:28 | * | desophos quit (Remote host closed the connection) |
19:35:13 | * | desophos joined #nim |
19:35:25 | * | libman joined #nim |
19:36:13 | libman | I've been thinking a lot about the problems that new languages face, and one of the biggest is fragmentation of the package ecosystem. |
19:37:02 | * | u0_a92 joined #nim |
19:37:02 | u0_a92 | ls |
19:37:05 | u0_a92 | hello deavmi here |
19:37:18 | libman | Mid-level ecosystems like Java and .NET share packages among all their languages, which is great. But this didn't happen among lower-level systems languages or scripting languages. |
19:37:27 | u0_a92 | I was wondering. does nim allow one to add C code into the Nin program? |
19:37:30 | u0_a92 | * Nim |
19:37:44 | u0_a92 | as i have seen this on the frontpage of nim-lang.org |
19:38:26 | libman | (Among scripting languages the closest thing was Perl's Parrot, but it didn't fly far. Node.JS is now becoming the dominant platform, so if things like CoffeeScript and LiveScript are thought of as separate languages, they got a big boost from interoperability with the rest of the NPM packages.) |
19:38:59 | Araq_ | libman: Ruby's gems are universally accepted as the standard, I can't follow. |
19:39:21 | Araq_ | I mean 'universally=in the Ruby world' |
19:39:57 | libman | Hi Araq_. Ruby's gems, Python's eggs, NPM, CPAN, etc are all cores of their ecosystems, but they are shut-off from each-other. |
19:40:22 | libman | If CoffeeScript didn't compile to JS and had to reinvent all of NPM, it would have had a hard time. |
19:41:50 | libman | I keep hoping I'll have a compelling reason to code Nim, but over the years isn't just not happening. Mainly it's because I didn't do much serious programming that needed something other than scripting. But Go, Rust, Julia, etc have bigger communities and package ecosystems. |
19:42:35 | u0_a92 | btw i wasnt offended bybwhat was said earlier about "blasphemy" |
19:42:55 | u0_a92 | its a common occurence on the knternet that one willnnot understand intentions. all is good. |
19:42:58 | u0_a92 | :) |
19:43:17 | u0_a92 | I just cant change my username XD |
19:43:20 | libman | I've been thinking about WebAssembly and Rust's Mid-level IR... What if we could unite multiple systems languages into one ecosystem, like EcmaScript and CoffeeScript are one ecosystem? |
19:44:00 | Araq_ | well we generate C, C++ and JS code and have very good interop |
19:44:15 | Araq_ | but C and C++ have no package management we could benefit from |
19:44:24 | dom96 | u0_a92: glad to hear you're not offended :) |
19:44:26 | libman | Nim has great syntax, but could it be like CoffeeScript for Rust (or Julia, etc) |
19:44:57 | Araq_ | well it's like CoffeeScript for C? |
19:45:10 | * | BitPuffin quit (Read error: Connection reset by peer) |
19:45:37 | libman | Yes, but I'm talking about a common library format and ecosystem that multiple languages (including Nim) could share. LLPM? MIRPM? |
19:46:00 | libman | (MIR == Rust's Mid-level IR) |
19:47:04 | libman | Maybe in a few years WebAssembly will jump to the server and have a common package ecosystem, but then again maybe not... |
19:48:29 | Araq_ | LLVM's IR? I cannot see that happening. |
19:49:26 | dom96 | I think no matter what you will always need wrappers |
19:49:30 | dom96 | which are the biggest problem |
19:49:43 | dom96 | you can already use A LOT of C libraries from Nim |
19:50:02 | * | chrisheller quit () |
19:50:17 | libman | OK, so no hope of Rust (or Julia, maybe even Go, etc) and Nim sharing a common library and package manager ecosystem? |
19:50:58 | Araq_ | there is also .NET and Java bytecode and diverse IRs for GPUs. Not to mention ARM assembly language. In theory nobody ever needed more than ARM (or x86 for that matter) and yet new low level representations and languages pop up all the time. |
19:52:40 | libman | If that's not a possibility, then I guess WebAssembly is our last best hope of a sane lower-level library ecosystem with language choice. |
19:54:11 | libman | (My Copyfree license-nagging adventures in that land remain inconclusive, heh... https://github.com/WebAssembly/design/issues/668 ) |
19:55:25 | Araq_ | the industry has forces to unify stuff as well as forces that try to keep things incompatible so we usually have 3-5 different things: 3 major OSes, 4 different browsers, 5 different game engines for AAA games, 2-3 mobile platforms |
19:56:56 | Araq_ | you're right though that JavaScript has a monopoly. |
19:57:18 | Araq_ | hence it's the most common programming language on earth by now or something. |
19:58:25 | libman | Only among new script-kiddie code. Most existing and high-value code is still C and Java. |
19:59:41 | * | brson joined #nim |
20:04:23 | Araq_ | there was some study on the amount of code for a typical Linux distro in the 90s or something. it contained more shell, python and perl code than C and assembly ;-) |
20:05:30 | Araq_ | but maybe it's indeed not "high-value" code. can't say I disagree. |
20:07:49 | * | Matthias247 quit (Quit: Matthias247) |
20:07:56 | elrood | to be fair, in the 90s the linux kernel sources consisted of a mere few 100k lines of code. not really comparable to today's systems |
20:11:57 | * | Matthias247 joined #nim |
20:12:42 | libman | Gotta run soon. The point I wanted to inject into Nim dev thinking is how to avoid reinventing the wheel when it comes to the library ecosystem... Wish I had more than a vague concept to recommend... |
20:12:58 | * | bozaloshtsh joined #nim |
20:13:46 | libman | Maybe that's something to think about for 2.0 ;-) |
20:16:23 | elrood | if you have more than a vague concept you'll be more than welcome to share it ;) until then, the wildly differing platforms, architectures, languages and toolchains we have make the idea pretty much infeasible, it's not as if it was a novelty |
20:17:38 | libman | I thought maybe some of Rust's intermediate representations would offer a possibility. |
20:18:56 | libman | The Rust-Nim alliance could then grow to include other LLVM languages, Go, etc. |
20:19:14 | libman | (Or Nim-Rust.) |
20:19:27 | libman | Speaking of which, is crown going to remain the logo? |
20:20:16 | libman | As an Anarcho-Capitalist, I particularly like the black and gold colors used on https://glot.io/ :P |
20:21:17 | libman | Is there an official version? What does the crown symbolize? |
20:21:17 | elrood | even if there was a technical way to overcome all the present problems, which most would agree on is impossible, you haven't even begun to scratch on the surface of competing policies, communities, licenses, backing organizations etc. |
20:21:20 | Araq_ | the crown will stay, yes. |
20:21:45 | libman | Please tell me it's covert libertarian symbolism for individual sovereignty... :P |
20:21:52 | Araq_ | it stands for Nim's superiority (complex). |
20:22:07 | libman | I like that. |
20:22:37 | libman | Which rendition of the crown logo canonical? |
20:22:50 | libman | *is canonical |
20:23:05 | Araq_ | good question, the one you linked is perfectly fine at least. |
20:24:05 | elrood | it's not a symbol for the subliminal support of monarchism in Nim's community? ;P |
20:24:06 | Araq_ | the one on my laptop is white/yellow though |
20:24:09 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:25:52 | ephja | are assembly languages CoffeeScript for machine code? ;) |
20:27:28 | * | novavis joined #nim |
20:27:41 | libman | Some examples of me using the crown logo in my Facebook posts: https://archive.is/iulib , https://archive.is/lU3oC , https://archive.is/UDBPR , https://archive.is/yScoV , |
20:31:37 | libman | https://archive.is/iszO5 , https://archive.is/PHgnE , https://archive.is/gnfNH, https://archive.is/LdTgw , https://archive.is/DCw7j , and https://archive.is/ayuBw . |
20:32:30 | * | PMunch joined #nim |
20:32:50 | libman | (No logo, but insightful on how Nim doesn't seem to end up on top of my decision support matrix - https://archive.is/x8gsA ) |
20:33:40 | * | yglukhov quit (Remote host closed the connection) |
20:34:09 | libman | ephja: my analogy wasn't "any language that compiles to something else", but "a new language that piggybacks on an existing package ecosystem" |
20:39:29 | * | yglukhov joined #nim |
20:40:04 | libman | Be back later. |
20:40:14 | * | libman left #nim (#nim) |
20:49:06 | * | PMunch quit (Ping timeout: 250 seconds) |
21:15:42 | * | rok quit (Quit: rok) |
21:28:29 | * | yglukhov quit (Remote host closed the connection) |
21:44:40 | * | Demon_Fox joined #nim |
21:50:38 | * | elrood quit (Quit: Leaving) |
21:51:02 | * | yglukhov joined #nim |
21:55:24 | * | yglukhov quit (Ping timeout: 250 seconds) |
22:04:31 | * | Trustable quit (Remote host closed the connection) |
22:06:01 | * | kulelu88 joined #nim |
22:06:44 | * | kulelu88 quit (Changing host) |
22:06:44 | * | kulelu88 joined #nim |
22:09:04 | * | Motan quit (Ping timeout: 250 seconds) |
22:13:59 | * | fredrik92 quit (Ping timeout: 250 seconds) |
22:16:58 | * | Varriount quit (Read error: Connection reset by peer) |
22:17:14 | * | Varriount joined #nim |
22:23:05 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:23:24 | * | yglukhov joined #nim |
22:28:07 | * | yglukhov quit (Ping timeout: 260 seconds) |
22:29:13 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
22:30:10 | * | fredrik92 joined #nim |
23:15:26 | * | Jesin joined #nim |
23:18:03 | * | brson quit (Ping timeout: 240 seconds) |
23:18:04 | * | arnetheduck joined #nim |
23:36:50 | * | ephja quit (Quit: WeeChat 1.4) |
23:40:33 | * | bozaloshtsh quit (Ping timeout: 240 seconds) |
23:42:31 | * | brson joined #nim |
23:49:03 | * | rinukkusu quit (Ping timeout: 240 seconds) |
23:49:23 | * | kier quit (Ping timeout: 250 seconds) |
23:49:50 | * | kier joined #nim |
23:50:04 | * | rinukkusu joined #nim |
23:55:22 | * | brson quit (Read error: Connection reset by peer) |
23:55:35 | * | brson joined #nim |
23:55:58 | * | libman joined #nim |