00:02:35 | * | gokr quit (Quit: Leaving.) |
00:13:53 | enthus1ast | is there a convenient way. while looping through a sequenze. to only append a sperator when its not the last item? |
00:13:53 | enthus1ast | eg: creating a comma seperated list withouth the last ", " ? |
00:34:24 | * | GangstaCat quit (Quit: Leaving) |
00:39:09 | * | GangstaCat joined #nim |
00:53:59 | reactormonk | enthus1ast, look for join |
00:58:41 | enthus1ast | reactormonk: a join over a object with an `$` proc requires that i write my own join right? |
01:01:20 | reactormonk | enthus1ast, how would you join a list of objects without `$`? |
01:05:11 | enthus1ast | i would't |
01:05:33 | enthus1ast | its to late here i should sleep : ) |
01:21:24 | reactormonk | enthus1ast, I assume you had a typo in there, because otherwise your question makes no sense. |
02:21:31 | * | enthus1ast quit (Ping timeout: 244 seconds) |
02:41:20 | * | arnetheduck joined #nim |
04:22:13 | * | enthus1ast joined #nim |
04:34:11 | * | desophos joined #nim |
04:41:52 | * | kulelu88 quit (Quit: Leaving) |
05:25:50 | * | desophos quit (Read error: Connection reset by peer) |
06:15:28 | * | gokr joined #nim |
06:27:57 | * | nchambers is now known as shellbot |
06:28:54 | * | shellbot is now known as nchambers |
06:49:54 | * | kulelu88 joined #nim |
06:53:20 | * | zahary joined #nim |
07:05:48 | * | yglukhov joined #nim |
07:16:00 | * | gokr quit (Ping timeout: 276 seconds) |
07:23:27 | * | kulelu88 quit (Quit: Leaving) |
07:29:18 | * | endragor joined #nim |
07:53:28 | * | yglukhov quit (Remote host closed the connection) |
08:12:57 | * | yglukhov joined #nim |
08:24:44 | * | chrisheller quit (Remote host closed the connection) |
08:25:34 | * | yglukhov quit (Remote host closed the connection) |
08:28:45 | * | filcuc joined #nim |
08:30:15 | * | gokr joined #nim |
08:31:56 | * | Arrrr joined #nim |
08:32:06 | Arrrr | Welcome |
08:32:17 | filcuc | hi all, i'm still debugging my issue with "The application has requested the runtime to exit in an unusual way" with a .dll, nim, dynlib and mingw32 |
08:32:42 | filcuc | i created a really small example with cmake and a one liner .nim file |
08:33:41 | flyx | dom96: I'm around now |
08:34:46 | filcuc | is there someone that would like to give it a look? |
08:38:35 | filcuc | https://gist.github.com/filcuc/03811841ab4f1708ce2e0f8feae9aca4 |
08:39:04 | filcuc | if you want to test it, just replace "_" with a "/" in the gist names. The "_" stands for a subfolder |
08:39:58 | filcuc | i'm using mingw32 4.9.2 |
08:40:03 | filcuc | on a 64bit system |
08:41:51 | * | gokr quit (Ping timeout: 246 seconds) |
08:44:01 | cheatfate | filcuc, do you receive your error on program exit? yes? |
08:44:06 | filcuc | yes |
08:44:13 | filcuc | cheatfate: yes |
08:44:50 | cheatfate | do you have some initilization code in DllMain? |
08:45:15 | filcuc | cheatfate: no |
08:45:27 | filcuc | you can see from the gist |
08:46:04 | filcuc | cheatfate: or at least..i didn't put anything in the .cpp that is part of the shared library |
08:46:13 | * | darkf_ joined #nim |
08:47:17 | cheatfate | filcuc, the problem is i dont have cmake |
08:47:20 | flyx | filcuc: dos_qapplication_create doesn't seem to have an implementation |
08:48:00 | filcuc | flyx: no sorry i'll update the gist my fault |
08:48:04 | filcuc | flyx: give me a sec |
08:48:13 | * | darkf quit (Ping timeout: 268 seconds) |
08:48:35 | filcuc | flyx: cheatfate updated |
08:49:55 | cheatfate | filcuc, i'm trying to compile it according to cmake rules... |
08:50:43 | filcuc | cheatfate: thank you |
08:51:45 | cheatfate | filcuc, could you please run your cmake to show what options have been passed to gcc? |
08:52:16 | cheatfate | filcuc, so i can compile it |
08:52:50 | filcuc | cheatfate: flyx from what i see with dependency walker from inspecting the main.exe and libDOtherSide.dll , the dll links to msvcrt and a dll of mingw32 |
08:53:00 | filcuc | cheatfate: flyx: the exe only msvcrt |
08:53:08 | filcuc | cheatfate: ok i'll give the command line used by cmake |
08:54:09 | * | flyx does not have knowledge about mingw and will be of little help here |
08:55:54 | filcuc | cheatfate: cd /d E:\Repo\DOtherSide-build\lib && C:\Tools\Qt\Tools\mingw492_32\bin\g++.exe -DDOtherSide_EXPORTS -DWIN32 @CMakeFiles/DOtherSide.dir/includes_CXX.rsp -Wall -Wno-long-long -pedantic -O3 -DNDEBUG -o CMakeFiles\DOtherSide.dir\src\DOtherSide.cpp.obj -c E:\Repo\DOtherSide\lib\src\DOtherSide.cpp |
08:56:00 | filcuc | cheatfate: for the compiler |
08:56:35 | filcuc | cheatfate: C:\Tools\Qt\Tools\mingw492_32\bin\g++.exe -Wall -Wno-long-long -pedantic -O3 -DNDEBUG -shared -o libDOtherSide.dll -Wl,--out-implib,libDOtherSide.dll.a -Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive CMakeFiles\DOtherSide.dir/objects.a -Wl,--no-whole-archive @CMakeFiles\DOtherSide.dir\linklibs.rsp |
08:56:46 | filcuc | cheatfate: for the linking phase |
08:57:15 | filcuc | cheatfate: is it enough? |
08:57:32 | cheatfate | filcuc, i dont know i will trying |
08:59:11 | * | Demon_Fox quit (Quit: Leaving) |
09:00:09 | flyx | meanwhile, can someone tell me how to work with the I param of arrays? I want to get the index type, the lower and the upper bound an a proc foo[I, V](a: array[I, V]) |
09:01:56 | Arrrr | dont high(I) and low(I) work? |
09:02:52 | * | darkf_ is now known as darkf |
09:03:10 | flyx | yes. well that was obvious |
09:03:17 | flyx | now I just need to get the type |
09:03:34 | flyx | I seems to be a range, and system.nim doesn't seem to define any proc on this type |
09:03:59 | Arrrr | maybe when I is range? |
09:04:26 | Arrrr | i think there is a module to get the name of a type |
09:06:24 | cheatfate | flyx, its really not easy to make dll with mingw |
09:07:23 | flyx | Arrrr: yeah, typetraits. but that just gives me range 0..2(int) |
09:07:26 | flyx | I want to have "int" |
09:07:43 | * | yglukhov joined #nim |
09:08:55 | flyx | I tried this, but it doesn't compile: proc rtname[V](T: typedesc[range[V]]) = typetraits.name(V) |
09:10:30 | Arrrr | Well, i suppose there is no alternative than to use macros at this point. |
09:10:31 | filcuc | cheatfate: you were talking to me? |
09:11:42 | filcuc | cheatfate: *were you* |
09:12:01 | cheatfate | filcuc, i have made dll testing it node |
09:13:15 | filcuc | cheatfate: ok ;) |
09:18:07 | cheatfate | filcuc, i have modified your nim file and cpp file to get results... and i dont receive any errors |
09:18:47 | cheatfate | filcuc, modified nim file: https://gist.github.com/cheatfate/65daf907be57bfe79f7f99b5ed676ac1 |
09:19:31 | filcuc | cheatfate: :| |
09:19:33 | cheatfate | filcuc, modified cpp file: https://gist.github.com/cheatfate/3773cc4a2ffb388ae846503720e427fe |
09:19:48 | cheatfate | filcuc, include file was not modified |
09:20:21 | cheatfate | filcuc, and how i made dll: https://gist.github.com/cheatfate/e97281134197cf10e60e3789edd8a73d |
09:20:24 | filcuc | cheatfate: should you change the signature also in the include file... |
09:20:32 | filcuc | cheatfate: since you changed the return value? |
09:20:39 | cheatfate | filcuc, yes, i have forgot |
09:20:51 | cheatfate | change void to int |
09:21:37 | filcuc | cheatfate: i'll try to do the same here but seems weird |
09:22:03 | cheatfate | seems that some options from cmake makes this error |
09:22:41 | * | yglukhov quit (Remote host closed the connection) |
09:24:10 | filcuc | cheatfate: do you mean that by using the options of cmake you get the same error? |
09:24:27 | filcuc | cheatfate: and without no error? |
09:24:43 | cheatfate | filcuc, try to make dll in my way... do you still get an error? |
09:25:05 | filcuc | cheatfate: i'm doing it, give a sec |
09:28:14 | filcuc | cheatfate: i'm still getting the same error here |
09:28:27 | * | yglukhov joined #nim |
09:28:38 | filcuc | cheatfate: what kind of mingw32 are you using? |
09:28:51 | filcuc | (and btw are you compiling 32 or 64bit) |
09:29:21 | cheatfate | g++ (GCC) 4.8.3 (amd64) |
09:29:36 | cheatfate | and my result dll is amd64 too |
09:29:51 | cheatfate | but my nim compiler is latest devel |
09:30:05 | filcuc | cheatfate: ok..that's interesting because i'm using mingw 32bit |
09:30:16 | filcuc | cheatfate: 4.9.2 |
09:30:31 | cheatfate | so your result.dll is 32bit? |
09:30:43 | filcuc | cheatfate: yes |
09:31:27 | cheatfate | so to be exacly sure: you using 32bit mingw with 32bit nim on 64bit system? |
09:31:52 | cheatfate | *exactly |
09:32:03 | filcuc | cheatfate: g++ (i686-posix-dwarf-rev1, Built by MinGW-W64 project) 4.9.2 |
09:32:09 | filcuc | cheatfate: this is g++ |
09:32:22 | filcuc | cheatfate: Nim Compiler Version 0.13.0 (2016-01-19) [Windows: i386] |
09:33:13 | filcuc | cheatfate: so it seems everything's fine |
09:33:57 | cheatfate | filcuc, and what is your windows? |
09:34:10 | filcuc | cheatfate: windows 10 |
09:34:23 | cheatfate | i386 or amd64? |
09:34:28 | filcuc | cheatfate: 64bit |
09:35:14 | filcuc | cheatfate: are you using the mingw bundled with nim? |
09:35:32 | filcuc | cheatfate: because i'm using the one obtained with Qt 5.6 |
09:35:33 | cheatfate | nope mingw bundled with nim a little bit broken |
09:35:56 | filcuc | cheatfate: (and i've also tested with mingw32 obtained by the official website 4.9.3) |
09:36:02 | filcuc | cheatfate: (same error) |
09:36:17 | cheatfate | http://mingw-w64.org/doku.php/download |
09:36:21 | cheatfate | my mingw from here |
09:36:22 | filcuc | cheatfate: i'll try to do the same with a 64bit mingw |
09:36:54 | cheatfate | but you need nim 64 bit too |
09:37:29 | filcuc | cheatfate: ok, (you downloaded the cygwin or win-builds version?) |
09:37:57 | cheatfate | win-builds |
09:38:02 | filcuc | ok |
09:40:12 | Arrrr | The one from msys (mingw-w64) is 5.3.0 |
09:40:17 | Arrrr | *msys2 |
09:40:33 | filcuc | cheatfate: maybe there's something broken with dynlib when using 32bit dll on a 64bit system |
09:41:16 | * | yglukhov quit (Remote host closed the connection) |
09:42:09 | * | yglukhov joined #nim |
09:44:49 | filcuc | bingo |
09:45:11 | filcuc | by using nim 64bit with its bundled mingw64 bit env no error |
09:45:52 | filcuc | cheatfate: i'll try to reinstall nim 32bit with its own mingw32 and see if get the error |
09:46:09 | Araq | wooohooo zahary is back :-) |
09:46:11 | cheatfate | i think you will get an error... |
09:46:46 | * | yglukhov quit (Ping timeout: 252 seconds) |
09:47:02 | filcuc | cheatfate: with everything 64bit no error.. |
09:48:35 | filcuc | cheatfate: btw thank you for the help |
09:48:40 | cheatfate | filcuc, np |
09:49:51 | cheatfate | Araq, i have tried to build nim on solaris, and got a problem with hstrerror function |
09:50:05 | cheatfate | Araq, proc hstrerror*(herrnum: cint): cstring {.importc:"(char *)$1", header: "<netdb.h>".} just want to ask you what mean "(char *)$1"? |
09:51:22 | filcuc | bingo |
09:53:14 | filcuc | cheatfate: Araq: on a 64bit system, 32bit nim (with its own mingw) if i dynlib a 32bit dll i get "The application requested to terminate the runtime in an unusual way", istead with a 64bit nim (with its own mingw32) if i dynlib a 65bit dll i get no error |
09:53:33 | filcuc | cheatfate: Araq: should i fill a bug report? |
09:55:20 | cheatfate | filcuc, i dont this is nim problem... its a mingw problem i think |
09:56:40 | Araq | cheatfate: it means (char*)hstrerror |
09:57:03 | Araq | so that the call that is produced is something like (char*)hstrerror(34) |
09:57:05 | Araq | bbs |
09:58:17 | filcuc | cheatfate: or maybe there's some wrong 64 bit call...who knows... |
09:58:52 | filcuc | cheatfate: in fact i'm asking if i should fill a bug or not.. |
09:59:01 | cheatfate | when you are running 32bit app on 64bit system you will using wow64 dlls |
10:00:13 | cheatfate | filcuc, its not a nim problem because nim doesn't produce binary... |
10:00:32 | cheatfate | filcuc, and ot looks like binary problem |
10:02:01 | * | rok joined #nim |
10:06:19 | * | filcuc quit (Ping timeout: 260 seconds) |
10:43:40 | * | yglukhov joined #nim |
10:47:50 | * | yglukhov quit (Ping timeout: 244 seconds) |
10:56:37 | * | darkf quit (Read error: Connection reset by peer) |
10:57:07 | * | darkf joined #nim |
11:22:20 | * | elrood joined #nim |
11:23:04 | * | yglukhov joined #nim |
11:29:22 | * | yglukhov quit (Ping timeout: 260 seconds) |
11:32:08 | * | Matthias247 joined #nim |
11:49:10 | cheatfate | Araq, thanks |
11:49:28 | cheatfate | Araq, for some reason solaris could not find hstrerror |
12:07:43 | * | darkf quit (Quit: Leaving) |
12:08:06 | * | endragor quit (Remote host closed the connection) |
12:09:21 | cheatfate | Araq, where i can find os specific compilation/link options? |
12:09:47 | cheatfate | Araq, i want to add -lrt for linux and -lresolv for solaris |
12:10:17 | Araq | when defined(linux): {.passL: "-lrt".} ? |
12:12:37 | * | endragor joined #nim |
12:12:58 | cheatfate | Araq, yeah but you want me to patch standard library with this pragmas? |
12:13:49 | Araq | sure why not. |
12:13:54 | cheatfate | timer_create/delete/settime,gettime is declared in posix.nim |
12:14:14 | Araq | but please add a fucking comment of what '-lrt' and '-resolv' mean and do. |
12:14:36 | Araq | oh the realtime specific stuff in posix.nim is mmm |
12:14:47 | Araq | better move it to its own module. |
12:15:07 | Araq | posixrt.nim or something |
12:18:30 | federico3 | dom96: regarding testing nimscript, is it worth adding https://github.com/FedericoCeratto/Nim/commit/8781fc63b5b72e0526f80b42f704b1d0278e299c ? |
12:19:17 | cheatfate | Araq, this posixrt.nim can brake other projects dependencies... |
12:19:22 | dom96 | federico3: sure, but in the long run it should be added to the tester I think |
12:20:22 | dom96 | Araq: why the damn swearing? |
12:20:28 | Araq | federico3: what? "This nimscript is used to test if the following modules can be imported" |
12:20:46 | federico3 | some failing modules include: os, logging, md5, net, parseopt |
12:20:47 | Araq | but most of these modules are not supported for nimscript |
12:21:11 | Araq | the supported modules are documented in nimscript's docs ... |
12:21:13 | federico3 | then, is there a list of supported modules? |
12:21:41 | Araq | http://nim-lang.org/docs/nims.html |
12:21:51 | Araq | strutils |
12:21:51 | Araq | ospaths |
12:21:51 | Araq | math |
12:23:08 | federico3 | "os" in not meant to be supported anymore? |
12:23:10 | Araq | dom96: because the amount of hacks annoys me. |
12:23:43 | Araq | federico3: never was, never will. |
12:24:43 | Araq | http://nim-lang.org/docs/nimscript.html contains lots of os-like features though. |
12:25:06 | federico3 | Araq: the modules listed in that file are currently importable. Are there some modules that make sense to test even if they are not listed as supported? |
12:25:11 | * | Matthias247 quit (Read error: Connection reset by peer) |
12:25:21 | dom96 | def- has an example on his blog which import 'os' in a nimscript |
12:28:35 | Araq | federico3: the list should be extended to the collections libs. |
12:28:53 | Araq | which tend to work unless you hit a sweet VM bug ... :-( |
12:29:07 | Araq | though it gets better with every VM bugfix. |
12:29:28 | federico3 | e.g. stuff that would be useful in a nimscript: parseutils, pegs, tables, uri |
12:31:30 | Araq | dom96: well 'import os' can work and break nilly willy. the problem is that the VM codegen is lazy so what you don't use doesn't immediately cause problems. |
12:31:53 | Araq | but we cannot write in the documentation "oohh, just use what doesn't cause error messages or crashes" |
12:32:02 | federico3 | how about this subset? |
12:32:10 | Araq | so we have a list of what is officially supported. |
12:32:28 | federico3 | https://github.com/FedericoCeratto/Nim/commit/b39d43c9e69940f60b14cda4572993e0cdae0d30 |
12:33:30 | federico3 | maybe I can also drop events, typeinfo, typetraits |
12:33:43 | Araq | federico3: that subset is too large. |
12:34:07 | federico3 | and also pcre and re |
12:35:02 | Araq | yeah, these cannot work. |
12:35:14 | Araq | and also remove 'locks' you cannot use threads at compiletime |
12:35:43 | federico3 | https://github.com/FedericoCeratto/Nim/commit/23f71d8ed2a9683a40e188bf4904be512247ef93 |
12:35:45 | federico3 | how about now? |
12:38:57 | federico3 | IMO not having parseopt, parsecfg and maybe json is quite limiting for nimscript |
12:40:46 | Araq | IMO staticExec works good enough for everything more complex that you might want to do with nimscript. |
12:41:24 | Araq | note that we support marshal.nim at compile-time so you can exchange structured data quite easily |
12:41:32 | Araq | bbl |
12:42:05 | * | BitPuffin|osx joined #nim |
12:43:11 | federico3 | marshal in nimscript? It doesn't work |
12:45:29 | enthus1ast | read from stdin should be also possible from nimscript |
12:52:10 | * | Kesta joined #nim |
12:52:29 | * | arnetheduck quit (Remote host closed the connection) |
12:56:50 | * | arnetheduck joined #nim |
13:08:34 | * | yglukhov joined #nim |
13:12:43 | * | fredrik92 joined #nim |
13:13:07 | * | yglukhov quit (Ping timeout: 248 seconds) |
13:20:57 | dom96 | enthus1ast: agreed |
13:26:42 | * | Guest59926isaway is now known as Guest59926 |
13:27:45 | federico3 | I'm looking for examples of a server using socket.recv (not recvline) |
13:28:48 | * | couven92 joined #nim |
13:31:49 | * | fredrik92 quit (Ping timeout: 250 seconds) |
13:48:55 | Arrrr | server? |
13:58:06 | federico3 | a TCP server |
13:59:27 | dom96 | federico3: what's your use case? |
13:59:31 | Arrrr | Like this? http://pastebin.com/sP0Vx0EU |
14:00:03 | dom96 | That's incorrect |
14:00:17 | Arrrr | Why? |
14:00:27 | federico3 | I want to listen on a TCP port, accept any incoming connection, receive a stream into a largeish buffer, inspect the buffer to extract messages |
14:00:33 | dom96 | Because you're using the unsafe low-level recv proc |
14:00:37 | dom96 | not the high-level memory safe one |
14:00:43 | dom96 | which takes a 'var string' |
14:00:47 | dom96 | instead of a 'pointer' |
14:00:51 | Arrrr | Well, but it works |
14:01:30 | dom96 | You should be able to just remove the `cstring()` |
14:01:59 | Arrrr | I think i was using the unsafe one because the other throws an exception if there is none |
14:02:17 | federico3 | async + recv is behaving strangely and now leading to a stack overflow |
14:03:03 | dom96 | Arrrr: if there is none what? |
14:03:15 | Arrrr | I mean, if there is nothing to be read |
14:03:32 | dom96 | it should block if there is nothing to be read |
14:03:35 | * | yglukhov joined #nim |
14:04:05 | Arrrr | Yes, unless you specify a timeout. |
14:04:40 | dom96 | you're not specifying a timeout though |
14:05:07 | dom96 | federico3: what protocol are you implementing? |
14:05:35 | federico3 | it's a binary protocol using msgpack |
14:06:48 | dom96 | Arrrr: the unsafe version also raises an exception on timeout |
14:08:31 | Arrrr | This one? http://nim-lang.org/docs/net.html#recv,Socket,pointer,int |
14:09:23 | dom96 | federico3: it is just a case of: var sock = newSocket(); sock.bindAddr(port); sock.listen(); while true: let client = sock.accept(); var str = newString(1024); client.recv(str, 1024) |
14:10:09 | dom96 | Arrrr: no, because it's the non-timeout version. |
14:10:28 | dom96 | Arrrr: the safe recv behaves the same way as long as you don't specify a timeout |
14:10:57 | Arrrr | Mmm, really? I didnt know, i think i tested it. But it was like one year ago |
14:11:08 | Arrrr | Maybe something changed or i was using it wrong. |
14:15:12 | * | yglukhov quit (Remote host closed the connection) |
14:15:37 | Arrrr | Anyway federico3, this is an example i posted some time ago http://pastebin.com/6HLkRNZk it may help somehow |
14:16:21 | federico3 | Error: unhandled exception: cannot read from stream |
14:16:23 | federico3 | processClient's lead up to read of failed Future: |
14:16:26 | federico3 | more weird errors |
14:19:32 | dom96 | federico3: show us the code :) |
14:19:38 | dom96 | and full error |
14:23:29 | federico3 | thanks, I think I got it figured out - but I'll publish the code in a few |
14:33:10 | * | pregressive joined #nim |
14:33:47 | * | couven92 quit (Ping timeout: 250 seconds) |
14:36:55 | * | yglukhov joined #nim |
14:37:32 | * | Trustable joined #nim |
14:49:54 | * | yglukhov quit (Remote host closed the connection) |
14:52:54 | * | pregressive quit (Remote host closed the connection) |
14:57:55 | * | yglukhov joined #nim |
15:01:19 | * | yglukhov quit (Remote host closed the connection) |
15:22:53 | * | yglukhov joined #nim |
15:33:54 | * | arnetheduck quit (Ping timeout: 276 seconds) |
15:35:02 | * | yglukhov quit (Remote host closed the connection) |
15:41:42 | * | heinrich5991 quit (Ping timeout: 276 seconds) |
15:42:50 | * | heinrich5991 joined #nim |
15:47:26 | * | aziz joined #nim |
15:49:29 | * | couven92 joined #nim |
15:56:47 | * | rgv151 joined #nim |
16:03:19 | * | rgv151 quit (Remote host closed the connection) |
16:06:51 | * | yglukhov joined #nim |
16:19:09 | * | Ven joined #nim |
16:19:36 | * | yglukhov quit (Remote host closed the connection) |
16:21:20 | * | filcuc joined #nim |
16:21:45 | filcuc | Araq: cheatfate: back again and maybe i found out what's going on |
16:21:58 | filcuc | Araq: see https://wiki.qt.io/MinGW-64-bit |
16:22:01 | filcuc | cheatfate: |
16:22:15 | filcuc | " If a library that uses DW2 exception handling (e.g. libgcc_s_dw2-1.dll) is loaded using LoadLibrary and FreeLibrary is not called, the program will crash" |
16:22:25 | filcuc | in particular |
16:22:32 | filcuc | Araq: cheatfate: http://comments.gmane.org/gmane.comp.gnu.mingw.user/41724 |
16:22:50 | filcuc | so basically this is seems caused by the linking of libgcc_s_dw22-1.dll |
16:23:01 | filcuc | this happen when using mingw32 (32bit) |
16:23:31 | filcuc | and not with mingw (64bit) bundled by nim...probably the 64bit version doesn't use dw2 |
16:24:29 | filcuc | infact for what i understood dw2 is supported only on 32bit mingw |
16:24:37 | filcuc | and that's all |
16:26:53 | filcuc | Araq: cheatfate: hope this help you too in case someone else come here with the same issue :) |
16:30:08 | filcuc | Araq: cheatfate: solved by explictly linking statically the libgcc -static-libgcc |
16:30:46 | * | Matthias247 joined #nim |
16:40:53 | * | krux02 joined #nim |
17:15:43 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:18:13 | * | Ven joined #nim |
17:22:15 | endragor | what's the syntax for .this pragma? |
17:24:04 | endragor | nevermind |
17:27:43 | * | endragor_ joined #nim |
17:27:43 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:28:16 | * | Ven joined #nim |
17:31:01 | * | endragor quit (Ping timeout: 250 seconds) |
17:32:23 | * | endragor_ quit (Ping timeout: 268 seconds) |
17:34:11 | * | filcuc quit (Read error: Connection reset by peer) |
17:39:00 | krux02 | are there any gdb pretty printers ready to use? |
17:51:17 | * | pregressive joined #nim |
17:51:28 | * | silven quit (Ping timeout: 264 seconds) |
17:52:06 | * | silven joined #nim |
17:55:47 | * | pregressive quit (Ping timeout: 248 seconds) |
18:00:01 | * | abbed joined #nim |
18:00:08 | * | abbed left #nim (#nim) |
18:06:59 | * | enthus1ast quit (Ping timeout: 250 seconds) |
18:13:41 | * | enthus1ast joined #nim |
18:25:40 | * | BitPuffin|osx quit (Ping timeout: 264 seconds) |
18:25:59 | * | Learath2 quit (Quit: ZNC - 1.6.0 - http://znc.in) |
18:26:09 | * | Learath2 joined #nim |
18:31:32 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:34:15 | * | Ven joined #nim |
18:35:32 | * | vqrs_ quit (Max SendQ exceeded) |
18:36:21 | * | vqrs joined #nim |
18:48:31 | * | silven quit (Ping timeout: 252 seconds) |
18:49:25 | * | silven joined #nim |
18:50:51 | niv | is there a way to import a C struct from a header without reproducing it manually in nim code? |
18:52:05 | Araq | .header pragma? |
18:53:30 | niv | oooh. i'll try. thanks! |
18:54:37 | * | ephja joined #nim |
18:56:14 | niv | https://gist.github.com/niv/292a8ff03d4b8bf96eca0e4d2f041736 what am i doing wrong? |
18:57:07 | niv | mm, importc: "struct rusage" seems to compile, but then i can't access the fields |
18:57:10 | ephja | dom96: so much nim hate from velartrill :p |
18:57:31 | ephja | nimscript. how evil amirite |
18:58:26 | dom96 | ephja: has velartrill tweeted something new? |
18:58:58 | dom96 | All I saw was the tweet about strong spaces |
19:00:56 | * | desophos joined #nim |
19:02:32 | ephja | not really |
19:04:58 | ephja | I just saw that someone retweeted that. it's a fair criticism, but some of the other points seem uninformed |
19:05:20 | dom96 | when was nimscript criticised? |
19:05:54 | dom96 | The tweet (https://twitter.com/velartrill/status/713501595430817792) got 128 retweets and 164 likes. And that's good. |
19:06:06 | dom96 | Even bad PR is good PR :) |
19:06:25 | dom96 | But it's not even that bad |
19:06:50 | ephja | the identifier equality rules are "remarkably awful" apparently. it's difficult to diverge from industry practices though |
19:07:27 | * | filwit joined #nim |
19:07:42 | ephja | sure |
19:08:13 | dom96 | who wrote that? |
19:08:27 | dom96 | Twitter is remarkably shit at showing a coherent view of the replies |
19:16:04 | ephja | https://twitter.com/velartrill/status/666164196711772160 what's so bad about this? |
19:17:01 | * | gokr joined #nim |
19:17:14 | cheatfate | niv, proc getrusage(who: cint; rusage: ptr) but you need proc getrusage(who: cint; rusage: pointer) |
19:18:23 | * | BitPuffin|osx joined #nim |
19:18:45 | cheatfate | niv, or proc getrusage(who: cint; rusage: ptr C_rusage) or or proc getrusage(who: cint; rusage: ref C_rusage) |
19:19:27 | * | Jesin quit (Quit: Leaving) |
19:21:22 | Araq | hmmm "fair criticism" about something which is based on pure paranoia? I don't think so. |
19:21:27 | cheatfate | niv, about struct you need to c2nim'it because nim compiler can't know what fields in C structure so, to access members you need to declare it fully |
19:22:04 | niv | i just defined it manually and that seems to work well enough. though "ptr" and addr() worked just fine, it wrote the fields correctly. |
19:25:30 | ephja | Araq: I'm not sure what paranoia has to do with it |
19:26:01 | Araq | is the argument more than "waa waaa waaa error prone?!" |
19:28:07 | * | BitPuffin|osx quit (Ping timeout: 244 seconds) |
19:29:27 | * | ephja quit (Quit: WeeChat 1.4) |
19:29:34 | * | nsf quit (Read error: No route to host) |
19:30:19 | * | nsf joined #nim |
19:32:40 | dom96 | ephja: wow, that's an old tweet. How did you find it? |
19:33:13 | dom96 | Araq: https://github.com/nim-lang/Nim/issues/4037 |
19:33:41 | dom96 | Let me know if you have anything against me fixing strutils.indent |
19:33:53 | dom96 | *unindent |
19:37:45 | Araq | go ahead |
19:39:18 | dom96 | Araq: Thx |
19:51:58 | * | Matthias247 quit (Read error: Connection reset by peer) |
19:52:18 | * | Demon_Fox joined #nim |
19:58:45 | dom96 | oh I see. The reason that tweet got so many RTs and Favs is because @comex retweeted it. |
20:00:57 | * | Arrrr quit (Ping timeout: 250 seconds) |
20:08:39 | * | Arrrr joined #nim |
20:23:34 | * | ephja joined #nim |
20:23:55 | * | filwit quit (Read error: Connection reset by peer) |
20:24:15 | ephja | dom96: I just looked through someone's posts |
20:24:25 | * | filwit joined #nim |
20:27:31 | ephja | Araq: I guess one might be frightened if one thinks that such examples might appear in the real world frequently |
20:27:46 | ephja | despite being considered experimental |
20:28:13 | Araq | you mean "might appear" as in "omg, I can look at the code and know the precedences immediately without looking it up in the spec"? |
20:30:45 | Araq | fwiw C's precedence rules are fucked up and few programmers know all their details. |
20:31:05 | Araq | yet nobody spreads FUD about them. |
20:31:59 | ephja | you're right, it's not that difficult to parse |
20:31:59 | couven92 | MSDN actually has a quite extensive documentation on ANSI-C... |
20:32:26 | * | Jesin joined #nim |
20:33:33 | ephja | that's true. people just don't like change |
20:33:33 | * | gokr quit (Ping timeout: 276 seconds) |
20:34:47 | Araq | ephja: the one guy I know who actually used #! strongspaces in practice complained it's makes the compiler too picky. |
20:36:10 | ephja | ok |
20:41:29 | krux02 | Araq: what do you use to debug nim code on i linux machine? |
20:42:05 | Araq | krux02: 'koch temp', writeStackTrace, 'if n.info ?? "temp"', ... |
20:42:16 | Araq | in other words I don't use a debugger if I can avoid it. |
20:42:57 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:43:09 | * | Kesta left #nim (#nim) |
20:43:27 | krux02 | I think that's not the best idea to use, since I know a lot of people who would avoid to use a language entirely, if there is not a comfortable way to debug it |
20:43:56 | * | chrisheller joined #nim |
20:44:06 | Araq | I agree and debugging support for NimEdit is planned. |
20:44:23 | krux02 | At the moment I am trying to get used to gdb, and I am trying out several frontends, but already simple things as seq[string] are pretty ugly. |
20:45:14 | krux02 | I don't want to say it's not possible, but it's also not a nice experience |
20:45:15 | Araq | yeah somebody should give GDB some Nim support |
20:45:31 | Araq | GDB has a Python scripting layer for these things. |
20:45:52 | Araq | shouldn't be too hard, but I don't need it, so I don't write it. |
20:45:54 | krux02 | I know, it also has a scheme scripting layer |
20:46:06 | couven92 | krux02, concerning debugging in Windows: Microsoft has realeased their inner workings of their native (PDB) debugging format... If someone could figure out how to use that, we could actually get nim debugging in Visual Studio... |
20:46:18 | * | gokr joined #nim |
20:46:18 | thotypous | async should be a nightmare to debug |
20:46:26 | krux02 | there are actually a lot of things that would help |
20:46:56 | krux02 | I think if there would be some pretty printers available for nim types, we would already be much further ahead than at the moment |
20:47:41 | krux02 | https://sourceware.org/gdb/onlinedocs/gdb/Pretty_002dPrinter-Example.html#Pretty_002dPrinter-Example |
20:48:16 | couven92 | Hmm... with --embedSrc one could actually sort-of debug nim code with step-by-step, since the debugger would show the source code and the nim code would right there :P |
20:48:42 | couven92 | That's a really really awful debugging experience though :P |
20:48:57 | Araq | couven92: yeah that works already. and it's not really awful either. |
20:49:08 | krux02 | yes that's what I am using |
20:50:11 | thotypous | but reverse engineering nim code can be really awful |
20:50:14 | couven92 | well, you wouldn't really get good variable evaluation/watching, call stacks, and so on, do you? |
20:50:54 | krux02 | as long as the variables are somewhat c like it's possible |
20:51:18 | krux02 | struct like objects are nice and number types |
20:51:31 | niv | is there a pragma to make nim pack structs in memory just like gcc/llvm would? im having a hard time trying to make my ptr-to-c-struct function work |
20:51:32 | krux02 | but strings are not so nice and seq also not that much |
20:52:35 | Araq | niv: use c2nim please. its chances of getting it right are higher than yours if you're new to Nim. |
20:52:59 | krux02 | niv: isn't nim compiling it's datatypes to c-structs? |
20:53:23 | niv | Araq: will try, thanks. krux02: yes, but when im poking at it with sizeof() and similar things dont line up |
20:53:53 | krux02 | with similar you mean offsetof? |
20:54:30 | niv | mm yeah. i'll try c2nim and figure it out, thanks :) |
20:55:09 | krux02 | and the debugger also does a lot of jumping around in loops, because the iterator functions are normally inlined |
20:56:23 | couven92 | niv, krux02, you're probably looking for packing pragmas, like #pragma pack <n> in VCC and __attribute(packed) in GCC, right? Do we have these in Nim, I don't remember reading about them in the manual |
20:56:28 | * | apotheon quit (Ping timeout: 244 seconds) |
20:56:53 | krux02 | Araq: I would like to get an environment running, where the road of the least resistance is to just take a debugger, and then doing other things. |
20:57:05 | krux02 | so I would like to get debugging easy and comfortable |
20:57:18 | krux02 | I just don't know yet what the best frontend for debugging nim is |
20:57:40 | Araq | ah ok. |
20:57:44 | Araq | I can help with that. |
20:57:51 | Araq | improve GDB. |
20:58:09 | niv | Araq: well, c2nim can't deal with rusage. it doesn't translate __kernel_long_t it seems. is there something im missing? |
20:58:09 | Araq | there is no other realistic option except perhaps one day LLDB. |
20:58:47 | Araq | LLDB is a PITA to get to compile in my experience. |
20:59:02 | Araq | ENDB is just a toy and will remain a toy. |
20:59:12 | Araq | Visual Studio is MS specific. |
20:59:34 | couven92 | I was actually planinng on looking into portability between GDB and Visual Studio, when I do that, I could try do see what I can do with the Nim language as well... :D (yeah, I LOVE visual Studio [and I hate it sometimes :P]) |
20:59:44 | Araq | if NimEdit grows some support it will just be a better frontend for GDB. |
21:00:04 | Araq | krux02: does that help you? |
21:04:31 | gokr | krux02: When it comes to GDB frontends I have used KDevelop and QtCreator quite successfully. But yeah, inspecting data doesn't really work of course. But stepping etc works really nice. |
21:04:32 | krux02 | Araq: If NimEdit will be a good gdb frontend, I would even pay for it, just for a nice debugging experience. |
21:05:08 | krux02 | gokr: where is the point of stepping through the code, if you can't inspect the data? |
21:05:25 | couven92 | control-flow analysis |
21:05:31 | gokr | Well, you can still set breakpoints, see where it goes etc. |
21:05:38 | Araq | krux02: you can inspect the data, but it's ... suboptimal :P |
21:05:40 | gokr | And some data can be seen. |
21:06:00 | krux02 | and some data can't be seen |
21:06:37 | krux02 | I will try now to implement a pretty printer for a string |
21:06:44 | gokr | Yes, but you said "where is the point" - and there is a point. But I would also love great data drilling, and so would Araq - and we have discussed it several times, but its a bit of work :) |
21:07:13 | gokr | krux02: Yeah, pretty printers would probably go a long way. |
21:07:37 | krux02 | what do you mean with "would go a long way" |
21:07:42 | krux02 | takes long to implement |
21:07:46 | krux02 | or help a lot? |
21:07:53 | gokr | help a lot |
21:08:40 | gokr | IIRC when I looked at this... we came to the ideal conclusion about some... protocol to implement. But right now I don't recall. |
21:10:25 | Araq | gokr: for some 'we' that excludes me ;-) |
21:10:40 | gokr | Ok, sorry, my memory is vague. |
21:10:59 | gokr | Wasn't there some debugger protocol that we could implement? |
21:11:22 | Araq | yeah but that boils down to an ENDB-like implementation. |
21:11:45 | Araq | which I don't believe in. And I wrote ENDB. |
21:12:53 | gokr | So... is the best solution an LLVM backend simply? |
21:13:04 | gokr | That would give debugging for free I presume? |
21:13:25 | Araq | no, it would have much of the same issues. |
21:13:29 | gokr | ok |
21:13:45 | Araq | except that we could have some less barbaric name mangling. |
21:15:56 | Araq | GDB does support a protocol and remote debugging, it's really nice once we teach it a bit about Nim. |
21:16:52 | dom96 | krux02: would you consider implementing a GDB frontend in Aporia? |
21:18:04 | gokr | Araq: So the deal is to dig into the GDB codebase and add "Nim support" in there? |
21:18:08 | * | apotheon joined #nim |
21:18:22 | krux02 | dom96: Not really, or at least not at the moment, because I remember last time I tried to implement a simple petty printer the experience was horrible took a long time and in the end I gave up. So don't expect from me that my effort will result in anything useful. |
21:18:42 | krux02 | but I am doing my best, I just need to understand the way gdb works better |
21:18:55 | krux02 | everything seems so complicated if you want to do something simple |
21:19:07 | * | ephja quit (Quit: WeeChat 1.4) |
21:19:10 | dom96 | I have renewed faith in Aporia, now that I successfully got it running on OS X |
21:19:55 | krux02 | dom96: I like the simplicity of aporia, it reminds me a lot of processing |
21:20:13 | dom96 | :) |
21:20:18 | krux02 | I like the most, that I can just write and run without creating a project |
21:20:32 | krux02 | but getting it to work on linux with autocompletion was not straightforward |
21:20:58 | dom96 | Autocompletion is still experimental :P |
21:21:35 | dom96 | I am planning on spending some time on it though |
21:21:47 | Araq | dom96: I still need to create 2 PRs for Aporia ... |
21:21:50 | krux02 | autocompletion is a frontpage feature |
21:21:58 | dom96 | Go to definition should already work much better |
21:22:05 | krux02 | so it better be not experimental or you will just disappoint people who try it out |
21:22:38 | dom96 | indeed |
21:22:45 | krux02 | btw: what was the main issue with aporia and osx? |
21:23:28 | dom96 | Compiling GTK successfully on OS X |
21:24:02 | gokr | dom96: What are the current efforts being made for Nim and desktop UIs? Obviously you use Gtk2, Stefan does ... Gtk4 i think, and then we have the Qt stuff? |
21:24:04 | krux02 | I always thought GTK was nicely and platform independant |
21:24:18 | gokr | Araq wrapped wx, but... never used it, right? |
21:24:46 | krux02 | and not to forget, you can write your own ui elements with sdl2 |
21:24:57 | gokr | I am curious since I am starting to entertain the idea of making a bit of IDE around Ni. |
21:24:58 | Araq | gokr: some examples work but we have a better wx wrapper now that we should release ... |
21:25:05 | gokr | Araq: Oh, cool |
21:25:21 | Araq | in fact ... I also have other stuff I should release ... ugh. |
21:25:51 | dom96 | gokr: no idea. There are lots of things, Stefan's gtk3 wrapper (which is just a wrapper AFAIK, just like the gtk2 wrapper), yglukhov's nimx, filcuc's DOtherSide which wraps Qt IIRC |
21:26:04 | gokr | On my modest side - I managed to store something in Sophia db last night :) c2nim:ed it. |
21:26:49 | dom96 | krux02: there was also the problem of making it look nice on OS X |
21:27:01 | gokr | And oh, I got a Ni REPL up using the Ni interpreter compiled via the js backend. Kinda cool that it actually works. |
21:27:14 | gokr | dom96: http://www.krampe.se/ni.html |
21:27:24 | dom96 | krux02: drawing custom UI elements using sdl2 is a PITA |
21:27:35 | gokr | The Ni interpreter (1600 loc of Nim basically) turns into 91k minified js. |
21:27:57 | dom96 | gokr: that sounds like a lot |
21:28:06 | dom96 | You should add a Ni tutorial in there :D |
21:28:11 | gokr | I know. |
21:28:29 | gokr | I need to write a proper language manual, was going to start tonight I think. |
21:28:39 | gokr | And I should find a better name :) |
21:28:54 | dom96 | oh wait, you mean 91kb or 91k LOC? |
21:28:56 | gokr | But I do find it fascinating that it actually works in js. |
21:29:05 | gokr | 91k bytes. |
21:29:13 | dom96 | oh, that's not so bad :P |
21:29:16 | gokr | Nope. |
21:29:31 | dom96 | did you compile in release mode? |
21:29:49 | gokr | yeah |
21:29:55 | Araq | dom96: doesn't make much difference for JS. |
21:30:09 | Araq | JS always performs dead code elimination anyway. |
21:30:13 | gokr | Its 163kb before minification. |
21:30:40 | dom96 | Araq: what 2 PRs do you need to create? |
21:30:48 | krux02 | dom96: I think wrapping qt for nim just to have three button in the main menu of a game is a PITA and overkill |
21:31:10 | krux02 | but generally yes ui libraries exist for a reason |
21:31:11 | Araq | dom96: I made osproc much better for interactive application control |
21:31:15 | dom96 | krux02: of course |
21:31:21 | Araq | and then my command line handling patch. |
21:31:41 | gokr | The Smalltalk world has made its own widgets/windows for a long time. |
21:31:53 | gokr | It does have its merits - looks and works the same everywhere. |
21:31:55 | dom96 | Araq: so not PRs to Aporia code? |
21:32:10 | Araq | dom96: yes, they are PRs to Aporia code. |
21:32:18 | gokr | So for an IDE its a great approach - it also makes it easy for developers to contribute to the toolset. |
21:32:19 | dom96 | Factor had/has a nice UI |
21:33:00 | gokr | dom96: Pharo is pretty advanced by now: http://pharo.org |
21:33:09 | Araq | gokr: from my experience with nimedit I agree completely. The one thing that really sucks is the font rendering, the only thing I didn't write myself. |
21:33:12 | dom96 | Araq: what does it affect? suggest? |
21:33:17 | Araq | dom96: yes. |
21:34:10 | Araq | gokr: though getting undo/redo to work properly was remarkably hard. :-) |
21:34:22 | gokr | IIRC modern Pharo integrates freetype, but.. there was also pure Smalltalk implementations. |
21:34:46 | gokr | Its kinda funny, Pharo is a fork of Squeak which is a fork of the original Smalltalk-80 which introduced the BitBlt stuff. |
21:34:52 | Araq | SDL's fonts handling uses freetype. |
21:35:17 | gokr | yeah |
21:35:48 | Araq | dom96: want a cool macro example for your book? |
21:37:47 | dom96 | of course |
21:39:01 | dom96 | and please create those PRs, i'm curious what they change |
21:39:30 | Araq | look at tests/macros/typesafeprintf.nim |
21:39:31 | dom96 | GTK's font handling uses freetype too |
21:39:43 | Araq | dom96: no, it uses Pango. |
21:39:49 | dom96 | which uses freetype |
21:39:59 | Araq | Pango is much better than Freetype. |
21:40:06 | Araq | and does plenty of things on its own. |
21:40:26 | Araq | I tried to use Pango with SDL but found no docs on how to do that. |
21:40:40 | dom96 | hrm, weird, you're right. |
21:40:48 | dom96 | I wonder why it pulls freetype as a dependency then |
21:41:24 | dom96 | maybe you could use cairo to do your drawing? |
21:41:26 | Araq | "weird, you're right". that's not weird. That's ALWAYS the case. |
21:41:35 | Araq | :P |
21:41:36 | gokr | hehe |
21:43:27 | gokr | Btw... the Red lang just made a new release where they are going graphical/IDE etc. Looks... pretty darn impressive. I bet there is some inspiration in there if one would like to "roll your own". |
21:45:43 | gokr | Although... its darn dense to grasp. |
21:48:07 | * | rok quit (Quit: rok) |
21:48:57 | * | izi joined #nim |
21:52:50 | dom96 | Araq: So where is this macro example? |
21:53:07 | dom96 | oh, nvm, just noticed your message |
21:53:45 | dom96 | why not include it in the manual? |
21:55:08 | Araq | because these larger examples get outdated. |
21:55:23 | Araq | so I'd like to use ..include:: tests/foo.nim in the docs. |
21:56:18 | Araq | but surprise. On Unix based systems the tests end up under /etc/shit and the docs under /etc/crap so that will break some ways of "installing" Nim. |
21:56:41 | dom96 | also, it does actually seem that Freetype can be used as a backend for Pango |
21:57:22 | dom96 | maybe it's time to once and for all fix this shit so that it just works |
21:57:42 | Araq | I cannot fix Unix. |
21:58:11 | dom96 | then learn to live with its quirks |
21:58:24 | dom96 | just like everyone else |
21:58:45 | Araq | "quirks"? this thing is unusable. and every sane system moved to something like "bundles" 5 decades ago. |
22:00:27 | dom96 | then stop giving people the option to install into /usr/bin |
22:00:33 | dom96 | and force them to install into /opt |
22:01:09 | Araq | would love to, but that's not a realistic option either and you know it. |
22:02:22 | dom96 | Then it's time to fix Nim so that it works perfectly fine when it's installed to /usr/bin |
22:02:30 | * | Trustable quit (Remote host closed the connection) |
22:02:38 | Araq | it does work perfectly fine. |
22:03:04 | Araq | the only stuff that doesn't work is stuff that we never officially supported in the first place. |
22:03:21 | Araq | like "building all the docs via koch" |
22:04:06 | Araq | koch is a build tool. for us. not for lazy Linux packagers. |
22:04:34 | Araq | or people with weird opinions of how to develop the most cost ineffective OS on the planet. |
22:07:14 | krux02 | so the problem is that the paths have different patters on different operating systems? |
22:09:33 | krux02 | and what about generating the include command with a macros? |
22:10:36 | Araq | krux02: we cannot generate what we don't know. |
22:10:53 | Araq | for example, packagers can decide to not package tests/ at all. |
22:11:20 | Araq | or move docs/ to some place we don't know. |
22:13:31 | couven92 | shouldn't computer sciency UNIX-lovers usually be comfortable with: ./configure --prefix=some/path; make; make doc; make install |
22:15:06 | Araq | you mean these 40K LOC configure scripts that are generated and impossible to review for security issues? :P |
22:15:25 | couven92 | YES! Exactly those!!! :D |
22:15:42 | couven92 | Don't we just love them all? :P |
22:16:23 | krux02 | I don't understand them, and I don't like what I don't understand |
22:16:31 | Araq | hint: a Linux package is something which DOESN'T use ./configure |
22:17:08 | couven92 | ah, so we're talking about something like: apt-get install nim |
22:17:22 | Araq | exactly. |
22:19:02 | couven92 | ah, right... yeah I seem to remember having issues with finding out where the hell ubuntu installed packages, because a google search usually gives me all the paths where apt-get DOESN'T install stuff... |
22:25:45 | Araq | couven92: that's nothing compared to the joy of having to use ./configure though and having to hunt all the dependencies on your own. |
22:27:36 | Araq | but it can be satisfactory to read messages like "your system doesn't seem to have Irix's memcpy bug that was released in 1984" |
22:28:13 | * | filwit quit (Quit: Leaving) |
22:29:46 | couven92 | Araq! Yeah, tell me about it! I have resorted to rebuilding all kinds off usual tools (OpenSSL, Git, cURL, etc.) on my account on the university server since the stuff there is ages old and I don't have sudo to update :P |
22:30:18 | couven92 | Good luck finding any of the usual dependencies in the usual places there! |
22:33:45 | * | darkf joined #nim |
22:35:12 | krux02 | the documentation of gdb to write a pretty printer is horrible, basically this it all I have: https://sourceware.org/gdb/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinter |
22:35:22 | krux02 | it doesn't even tell where those files have to be |
22:35:49 | dom96 | maybe you could ask #gdb? :) |
22:37:52 | krux02 | the exaple just tells how I write a matcher for the shared library |
22:38:06 | krux02 | but there is no shared nim library that gets loaded |
22:38:19 | krux02 | I have no idea what to do |
22:42:45 | * | Guest59926 is now known as Guest59926isaway |
22:46:32 | krux02 | nobody active in #gdb |
22:46:50 | krux02 | I really like this chat, it is always somebody active |
22:47:02 | krux02 | just want to tell you all, you are awesome for being here |
22:47:15 | couven92 | krux02, totally agree!!! Really nice being here! :D |
22:50:49 | cheatfate | Araq, to get the best truetype font rendering you need freetype, because adobe give freetype some closed source algorithms and only freetype can use it... so if you want the best fonts you need freetype |
22:52:08 | cheatfate | also pango is rendering truetype fonts only with freetype... all other fonts can be rendered with xft and bitmap fonts it can render with cairo |
22:56:36 | krux02 | I hate gdb, when the program loads a shared library gdb has a hook to load the libname-gdb.py file, but the problem is, that a nim program does not link to any nim specific library at all everything in generated in c |
22:58:26 | cheatfate | Araq, pango is just a very comfortable wrapper for freetype :) |
23:00:03 | * | elrood quit (Quit: Leaving) |
23:02:24 | * | vendethiel- quit (Ping timeout: 276 seconds) |
23:06:04 | Araq | krux02: https://sourceware.org/gdb/onlinedocs/gdb/Basic-Python.html#Basic-Python tried the Python console within GDB? |
23:06:15 | * | vendethiel joined #nim |
23:06:42 | Araq | if we create a frontend for GDB it might as well be a frontend for the 'Python REPL within GDB' |
23:06:50 | krux02 | no I did not |
23:07:40 | Araq | this way we also don't have to install anything then. we just start GDB and inject some python code at the beginning of the session |
23:07:47 | krux02 | I want to write a pretty printer, becaues I know an official pretty printer is loaded, when I debug from a frontend, like qt, or kdevelop, that means things will look nice automatically within those ides |
23:08:15 | Arrrr | Good night nimroders |
23:08:16 | * | Arrrr quit (Quit: WeeChat 1.4) |
23:08:32 | Araq | true but my idea is a decent Plan B. |
23:09:05 | krux02 | I might try it, but not today |
23:09:18 | Araq | but hrm ... |
23:09:21 | krux02 | today I finish my stack overflow question, and then go to bed |
23:10:15 | Araq | how about this: I make NimEdit open source and you promise to add debugger support? ;-) |
23:10:56 | Araq | you don't need to mess with GDB pretty printers at all then :P since it can all be done in the frontend. |
23:12:37 | Araq | ha! vmgen.preventFalseAlias introduces a false alias. how ironic. |
23:28:28 | * | vendethiel quit (Ping timeout: 252 seconds) |
23:29:45 | * | gokr quit (Quit: Leaving.) |
23:36:17 | couven92 | Araq, like: /* This function always returns false */ bool myMagicFunction { return true; } |
23:37:13 | couven92 | (Quote from the StackOverflow thread on the coolest comments in source code) |
23:39:03 | Araq | nah, I was wrong. the bug was somewhere else. |
23:44:10 | * | vendethiel joined #nim |
23:49:27 | * | krux02 quit (Quit: Verlassend) |
23:51:18 | * | aziz quit (Remote host closed the connection) |