00:01:28 | * | gokr quit (Quit: Leaving.) |
00:01:40 | * | gokr joined #nim |
00:02:03 | Varriount | Araq: I'm preparing the new mingw release |
00:18:45 | * | boydgreenfield joined #nim |
00:20:21 | * | Trustable quit (Remote host closed the connection) |
00:22:09 | * | taesoo quit (Ping timeout: 240 seconds) |
00:37:39 | * | vikaton joined #nim |
00:40:05 | * | vmeson joined #nim |
00:40:11 | * | womperbet joined #nim |
00:40:19 | womperbet | h |
00:40:42 | womperbet | I was looking around Nim's reddit and saw the question about unsafety |
00:40:50 | * | vendethiel joined #nim |
00:40:51 | womperbet | and saw this answer: http://www.quora.com/Is-Nim-really-that-unsafe/answer/Raafe-Qenda?__snids__=1171809209&__nsrc__=2 |
00:42:07 | Varriount | Uh.... what? |
00:42:19 | womperbet | Is that true? does anyone have a response to it? |
00:42:46 | Varriount | womperbet: It's inaccurate. |
00:43:04 | womperbet | Varriount: how so? |
00:43:06 | strcmp1 | accessing a non-existent index raises for me here. |
00:43:39 | Varriount | Nim *allows* you to turn things like range and bounds checks off, however there are also compile-time checks |
00:44:28 | Varriount | As for null-pointer dereferencing, that's a runtime error, but I hardly see how it's as destructive as a buffer overflow. |
00:44:45 | Varriount | (Java allows null pointer dereferencing) |
00:48:44 | womperbet | Should we inform him o.0 |
00:49:53 | Varriount | womperbet: Doing that now. |
00:50:03 | womperbet | cool |
00:50:34 | Varriount | I really dislike people who post such uninformed answers. |
00:51:14 | womperbet | don't we all? |
00:51:31 | Varriount | womperbet: How does this sound: |
00:51:34 | Varriount | "If you look at the compiler's help output, you can see that bounds checking for arrays and sequences is something that can be turned off/on, which makes any such errors rather self-inflicted. |
00:51:34 | Varriount | As for null-pointer dereferencing, there are compile-time checks that are performed by the compiler to avoid them, however such checks can only do so much." |
00:52:16 | womperbet | sounds good |
00:52:20 | flaviu | It's a shame that -d:release turns off all those checks though. |
00:52:30 | womperbet | Varriount:in the HN post he posted- |
00:52:42 | womperbet | yeah what flaviu said |
00:52:58 | Varriount | womperbet: What's particularly harmful with null-pointer dereferencing? I know that it's a run-time error, however it's hardly as bad as lack of bounds checking. |
00:53:09 | womperbet | mhm |
00:53:33 | womperbet | flaviu:I guess what the thing to do is to compile without -d:release and you will have no problems |
00:54:27 | flaviu | yep, you can always use --opt:speed --stackTrace:off --lineTrace:off |
00:55:29 | Varriount | Hm.. Should I add something like "In the future, please refrain from posting uninformed answers."? |
00:55:35 | Varriount | Or is that too snarky? |
00:56:29 | womperbet | hmm |
00:56:37 | flaviu | Too snarky IMO. It's best to polite and non-judgmental, even if the other person is an idiot. |
00:56:48 | womperbet | Yeah I agree |
00:56:53 | flaviu | (not saying that that's the case here, I haven't even looked at the HN post) |
00:57:38 | Varriount | flaviu: Ok, I'll withhold the snark for another, more appropriate time. |
00:59:40 | * | taesoo joined #nim |
01:00:50 | Varriount | womperbet, flaviu: How is this - https://gist.github.com/Varriount/5eba552a5eef8307a6d1 |
01:01:23 | Varriount | womperbet: If you have an HN account, I would appreciate if you could reply there. I don't currently have one. |
01:01:58 | womperbet | ok |
01:02:29 | womperbet | that was a 100 days ago tho |
01:02:36 | womperbet | the HN |
01:02:56 | womperbet | and yeah Varriount thats good |
01:03:15 | Crocodick | the -d:release check disabling are all in the $nim/config/nim.cfg |
01:03:23 | Crocodick | you can just comment them off |
01:03:26 | Crocodick | im pretty sure |
01:03:31 | flaviu | Crocodick: Yep. |
01:04:06 | Varriount | Furthermore, you can define your own presets |
01:04:50 | * | vendethiel quit (Ping timeout: 265 seconds) |
01:05:38 | vikaton | we should all of this into the answer |
01:05:51 | vikaton | then add this answer (reformed) and put in out FAQ ? |
01:07:50 | womperbet | Varriount: are you adding more or are you done? |
01:08:57 | Varriount | womperbet: Hm? I've posted my comment for that particular answer, however the main answer on that Quora page looks good enough to me. |
01:09:28 | womperbet | I like vikaton's idea about the FAQ thing so people can be informed from a primary source |
01:10:02 | Varriount | I agree, and if you want to post it, go ahead. |
01:10:03 | * | vendethiel joined #nim |
01:10:21 | Varriount | I have to go attend to something else for a bit though. |
01:10:46 | womperbet | Is there a place where I can submit a FAQ submission? |
01:11:04 | Varriount | For Quora? No idea. |
01:11:15 | * | Quora hates that site lol |
01:11:18 | womperbet | oh doesnt Nim have a FAQ? |
01:11:43 | Varriount | womperbet: It has a manual... but no faq... |
01:11:58 | womperbet | o |
01:11:59 | Varriount | Although, a FAQ posted on the main site would be good. |
01:12:19 | womperbet | Varriount:should I copy paste your whole answer on the HN ? |
01:14:59 | womperbet | Varriount ? |
01:19:23 | Varriount | womperbet: If you think it's suitable. |
01:19:34 | Varriount | Make any changes you feel necessary. |
01:21:22 | womperbet | dont think i can reply lol |
01:26:05 | * | dddddd quit (Ping timeout: 265 seconds) |
01:26:54 | * | akiradeveloper quit (Remote host closed the connection) |
01:30:55 | * | womperbet quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
01:31:06 | vikaton | do we have an online playpen ? |
01:33:26 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
01:34:49 | * | justicefries left #nim (#nim) |
01:37:21 | * | akiradeveloper joined #nim |
01:37:51 | * | boydgreenfield quit (Quit: boydgreenfield) |
01:38:37 | * | akiradeveloper quit (Remote host closed the connection) |
01:38:38 | * | vikaton quit () |
01:40:37 | * | bjz joined #nim |
01:43:56 | * | boydgreenfield joined #nim |
01:46:08 | * | akiradeveloper joined #nim |
01:51:34 | flaviu | vikatron: You're going to have to stick around for longer than 5 minutes to get an answer, especially if the channel is slow. |
01:52:09 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
01:52:53 | * | bjz joined #nim |
01:56:12 | * | Siecje1 joined #nim |
01:58:00 | * | Siecje quit (Ping timeout: 265 seconds) |
02:02:01 | * | boydgreenfield quit (Quit: boydgreenfield) |
02:03:10 | * | gokr quit (Ping timeout: 272 seconds) |
02:07:19 | * | ozra quit (Ping timeout: 246 seconds) |
02:07:31 | federico3 | how to convert an array to a set? |
02:11:00 | federico3 | import sets; array.toSet |
02:13:34 | * | pregressive joined #nim |
02:15:48 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
02:17:06 | fowl | federico3: intsets |
02:24:36 | * | vendethiel quit (Ping timeout: 264 seconds) |
02:25:08 | * | kumul quit (Ping timeout: 265 seconds) |
02:27:51 | * | akiradeveloper quit (Remote host closed the connection) |
02:29:54 | jrenner1 | exit |
02:29:57 | * | jrenner1 quit (Quit: WeeChat 0.4.2) |
02:30:21 | * | darkf joined #nim |
02:31:04 | * | boydgreenfield joined #nim |
02:38:30 | * | BitPuffin|osx quit (Ping timeout: 276 seconds) |
02:49:07 | * | Jehan_ joined #nim |
03:03:56 | * | Siecje1 quit (Read error: Connection reset by peer) |
03:17:15 | * | johnsoft joined #nim |
03:20:21 | * | bjz joined #nim |
03:23:25 | * | anthgur joined #nim |
03:24:54 | * | dtscode joined #nim |
03:27:01 | Varriount | Araq: The stripped version of MinGW is ready, however I do have some questions, in light to the recent issue of compiling GUI applications. |
03:48:18 | * | vmeson quit (Ping timeout: 246 seconds) |
03:48:19 | * | anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
03:55:31 | * | endragor joined #nim |
04:04:39 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
04:06:19 | * | taesoo quit (Ping timeout: 256 seconds) |
04:12:56 | * | akiradeveloper joined #nim |
04:23:05 | * | bjz joined #nim |
04:37:00 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
04:52:57 | * | akiradeveloper quit () |
05:01:45 | * | ddl_smurf quit (Quit: ddl_smurf) |
05:23:00 | avsej | flaviu, so you are using fedora, right? |
05:23:24 | avsej | or pigmej |
05:23:27 | Varriount | Hello avsej |
05:23:31 | avsej | hil |
05:24:02 | avsej | nim-lang $ ./koch boot -d:release --gc:boehm |
05:24:02 | avsej | could not load: /usr/lib/libgc.so.1 |
05:24:11 | avsej | fedora is multiarch |
05:24:23 | avsej | and it lives in /usr/lib64/libgc.so.1 |
05:24:42 | avsej | I cannot find where it loads libgc |
05:25:19 | Varriount | avsej: Any particular reason you're using the boehm gc? |
05:26:10 | avsej | I want to check if boehmgc tests still passing |
05:26:19 | Varriount | Ah. |
05:26:50 | avsej | imho they should skip themselves if it does not linked with boehm gc |
05:27:14 | Varriount | avsej: I agree. |
05:27:27 | * | pregressive quit (Remote host closed the connection) |
05:28:23 | avsej | https://github.com/Araq/Nim/blob/devel/lib/system/mmdisp.nim#L73 this does not look like portable thing :) |
05:28:29 | * | gokr_ joined #nim |
05:28:48 | Varriount | avsej: *cringe* |
05:29:39 | avsej | i'm curious why all platforms using relative name, and linux uses absolute |
05:30:20 | avsej | switched to relative and ... it works :) |
05:30:22 | Varriount | avsej: If I had to guess, probably because Araq was fed up with whatever rules *nix uses to find shared libaries. |
05:30:31 | Varriount | Either that, or he was tired. |
05:41:56 | * | kokozedman joined #nim |
05:42:53 | avsej | Araq, https://github.com/Araq/Nim/pull/2803 with this patch I can build with boehm gc and check that tests for it are green, althogh markAndSweep not in this case :) |
05:50:00 | avsej | flaviu, awesome https://github.com/Araq/Nim/pull/2801 :) |
05:51:37 | Varriount | avsej: What's the motivation behind that PR? |
05:51:45 | avsej | 2801? |
05:51:49 | Varriount | Yeah. |
05:52:05 | avsej | \n behaves in not portable way |
05:52:18 | avsej | on windows it two symbols, on linux only one |
05:52:25 | Varriount | avsej: Isn't that the point? |
05:52:45 | avsej | it should not like this |
05:52:54 | Varriount | Because Windows and Linux traditionally have different line endings. |
05:53:00 | avsej | yes I know it |
05:53:15 | avsej | but this makes files created on linux incompatible with windows |
05:53:19 | avsej | and otherwise |
05:53:45 | avsej | this problem should be solved on application level, not on programming language parser |
05:54:48 | Varriount | I beg to differ, I'd like to be able to output newlines to standard output without having extra string formatting. |
05:55:28 | Varriount | Also, don't other languages use '\n' in the same way? |
05:55:30 | cazov | avsej: why can't you use '\l' instead? |
05:55:30 | avsej | then it should be solved in streaming library somewhere, but again, not in the parser |
05:55:33 | * | boydgreenfield quit (Quit: boydgreenfield) |
05:56:03 | cazov | Varriount, I think python uses \n as just a linefeed and you have to do \r\n, though I'm not 100% sure on that |
05:56:29 | avsej | yes, other languages just map these to character codes |
05:56:32 | Varriount | cazov: For output? I've yet to see that particular combination. |
05:57:38 | avsej | it weird if you allocate string for 4 characters and put there "foo\n", but on windows it will lead to illegal memory access or something |
05:57:49 | avsej | so nobody will use \n |
05:58:06 | avsej | but \n is like common idiom, imho |
05:58:32 | * | vendethiel joined #nim |
05:58:33 | cazov | Varriount, I think there might be some stuff in various places that will autoconvert \n to \r\n. I do know for sending strings to some serial devices I had to explicitly use \r\n though |
05:58:56 | avsej | this magic might bite in unexpected way. I my application need this I would define const like NL and that's will be like controlled way |
05:59:08 | avsej | cazov, yes |
05:59:14 | avsej | just take a look at HTTP |
05:59:21 | avsej | it uses \r\n for every platform |
05:59:26 | avsej | not only windows |
05:59:47 | avsej | so you have to make ugly hacks or use \c\l |
05:59:56 | avsej | even if you have \n :) |
06:00:06 | cazov | yeah |
06:00:41 | Varriount | Does this break existing code? |
06:00:48 | avsej | we s |
06:00:53 | avsej | we should ask flaviu |
06:01:00 | avsej | if he run tests at least |
06:01:45 | avsej | anyway it might be some small difference which makes nim unique (i'm only couple of days with it), but imho, while it haven't reached 1.0 it will be better to merge this PR :) |
06:02:10 | avsej | it will help newcomers not to make unexpected bugs |
06:02:47 | Varriount | avsej: Hrm... |
06:05:09 | * | boydgreenfield joined #nim |
06:06:22 | Varriount | cazov, avsej: Huh, you're right. On Python, '\n' is interpreted as LF |
06:06:35 | Varriount | https://docs.python.org/3.0/reference/lexical_analysis.html#id9 |
06:07:01 | cazov | I think there's some smarts that `does the right thing` re: interpreting newlines for a given application/platform/w/e |
06:07:21 | Varriount | Although, it's transparently translated to the platform dependant line ending for most built-in output functions. |
06:07:27 | cazov | yeah |
06:07:36 | cazov | (but not in pyserial!) |
06:08:00 | Varriount | If I recall correctly, Python uses the underlying C standard library for basic IO, which explains that particular behavior. |
06:08:36 | Varriount | According to the C standard: "When writing a file in text mode, '\n' is transparently translated to the native newline sequence used by the system, which may be longer than one character" |
06:08:54 | * | gokr joined #nim |
06:11:19 | Varriount | Hi gokr! |
06:12:18 | gokr | hey! :) |
06:13:18 | Varriount | gokr: So, I was presented with this charming answer to a Quora question today - http://qr.ae/fLDPK |
06:14:14 | gokr | eh |
06:15:13 | avsej | Varriount, this is what I mean that the problem should be solved on the higher level |
06:15:35 | Varriount | avsej: Yes, I see your point. |
06:15:55 | Varriount | I admit that the alternative has it's pitfalls... |
06:16:18 | Varriount | Although, perhaps the current behavior could be relegated to uppercase N? |
06:17:46 | * | gokr_ quit (Read error: Connection reset by peer) |
06:18:12 | avsej | that makes sense |
06:18:36 | avsej | uppercase is like a warning "beware magic and dragons" :) |
06:18:50 | Varriount | An ideal compromise, I think. |
06:22:16 | * | boydgreenfield quit (Quit: boydgreenfield) |
06:22:18 | Varriount | avsej: Hm. Does Nim currently make a distinction between \r and \R? |
06:23:33 | avsej | \r = 13 |
06:23:33 | avsej | \R = 13 |
06:23:36 | avsej | no it does not |
06:25:42 | * | sepisoad joined #nim |
06:26:35 | kokozedman | hey guys... using TChannel, I'm usually not getting a perfect usage, always getting SIGSEGV: Illegal storage access. (Attempt to read from nil?) |
06:26:40 | kokozedman | any pointers? |
06:26:50 | Varriount | avsej: Hm. I dislike exceptional/inconsistant cases though. |
06:27:04 | Varriount | kokozedman: Can you give us some code? |
06:27:08 | * | intra joined #nim |
06:27:10 | Varriount | Also, hi sepisoad |
06:27:15 | Varriount | Hi intra |
06:27:34 | sepisoad | hi Varriount ;) |
06:30:56 | kokozedman | Varriount, sorry mate, my bad, I forget to open the channel first... silly mistake. On that subject, is it OK to use ref object as the message to be passed around? what does the "deep copy" imply? |
06:31:06 | sepisoad | does returning a Future value by a function implicitly mean it's a async function? |
06:31:56 | Varriount | sepisoad: Async in what context? If you mean for the Async networking modules, I don't know. Possibly. |
06:32:27 | sepisoad | like when designing a simple function |
06:32:32 | * | dtscode quit (Remote host closed the connection) |
06:32:37 | Varriount | kokozedman: deeply copied means that the entire data structure is copied. |
06:32:43 | sepisoad | proc funcA(): Future[void] = |
06:32:50 | Varriount | Including the data that the reference points to. |
06:33:02 | sepisoad | proc funcB() {.async.} = |
06:34:38 | Varriount | sepisoad: I don't know. |
06:35:27 | Varriount | sepisoad: I can't find any documentation on an async pragma. |
06:35:32 | * | dtscode joined #nim |
06:36:39 | kokozedman | Varriount, yes, I think I'm already aware of the term, but in the context of the TChannel, what happens to ref objects? is the ref copied, or the the nested object's child as well? |
06:36:57 | Varriount | The nest objects child. |
06:37:00 | Varriount | *nested |
06:37:32 | Varriount | kokozedman: If you want to pass only a reference, you'll need to pass a pointer, not a reference. |
06:39:34 | kokozedman | Varriount, oh, ok... I think I'm getting it now |
06:39:37 | kokozedman | thanks man! |
06:40:02 | Varriount | kokozedman: Take what I say with a grain of salt though. I haven't personally used the Channel module. |
06:40:53 | fowl | I beloeve You have to use asyncdispatch with futures |
06:46:18 | intra | Varriount: hi. |
06:50:04 | * | wb quit (Ping timeout: 255 seconds) |
06:54:02 | sepisoad | can we await for spawned proc which has not return type (void)? |
06:56:30 | Varriount | sepisoad: The docs suggest you can. |
06:57:26 | sepisoad | the only way that i know is to call sync() |
06:58:10 | reactormonk | avsej, neat structuring, I'll adopt that if possible |
06:58:23 | avsej | what do you mean? |
06:58:46 | reactormonk | The PR structuring |
06:59:07 | Varriount | avsej: He means your text |
06:59:28 | avsej | ah, that from https://github.com/netty/netty project |
07:00:36 | reactormonk | Varriount, wtf, now I even get people on the internet to explain stuff to other people for me... I guess I gotta be more wordy |
07:02:33 | Varriount | reactormonk: Brevity may be the soul of wit, but specificity is the knowledge that comprises it. |
07:05:17 | Varriount | On that topic, could someone help me hammer out this request for Phoronix to write an article on Nim? - https://gist.github.com/Varriount/e32997e45861adf35438 |
07:05:44 | Varriount | I can't seem to come up with a good 'conclusion' |
07:07:53 | * | endragor_ joined #nim |
07:08:45 | * | Ven joined #nim |
07:11:36 | * | endragor quit (Ping timeout: 272 seconds) |
07:12:59 | * | Trustable joined #nim |
07:13:12 | * | vendethiel quit (Ping timeout: 265 seconds) |
07:13:30 | * | Trustable quit (Remote host closed the connection) |
07:14:12 | * | Trustable joined #nim |
07:19:30 | * | endragor_ quit (Remote host closed the connection) |
07:47:52 | * | vendethiel joined #nim |
08:04:54 | * | coffeepot joined #nim |
08:08:28 | * | jbomo quit (Ping timeout: 272 seconds) |
08:08:39 | * | wuehlmaus joined #nim |
08:10:10 | * | vendethiel quit (Ping timeout: 255 seconds) |
08:25:02 | * | ingsoc joined #nim |
08:27:51 | * | vendethiel joined #nim |
08:28:09 | * | pregressive joined #nim |
08:32:34 | * | pregressive quit (Ping timeout: 252 seconds) |
08:46:00 | * | endragor joined #nim |
08:49:48 | * | vendethiel quit (Ping timeout: 252 seconds) |
08:52:24 | * | BlaXpirit joined #nim |
08:54:12 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
08:59:46 | * | ddl_smurf joined #nim |
09:03:53 | * | vendethiel joined #nim |
09:09:28 | * | OnO joined #nim |
09:19:42 | Araq | avsej: but the point of \n is so you don't have to use const NL = when defined(windows): "\13\10" else: "\10" ... |
09:20:14 | Araq | also Nim uses "binary mode" for IO, there are no 2 different modes to learn. |
09:20:29 | avsej | in other languages it is done on the library level |
09:20:41 | Araq | so? we're not "other languages" |
09:20:42 | avsej | okay for me it was surprise that \n can mean different things |
09:21:26 | avsej | now I learn that about nim, and will keep it in mind if I need to write code which deals with line endings |
09:21:42 | * | Jehan_ quit (Quit: Leaving) |
09:23:18 | Araq | also \n stands for *n*ewline not for linefeed, so why copy obvious misnames? |
09:23:25 | avsej | :) |
09:23:48 | avsej | maybe it li*n*efeed |
09:24:09 | avsej | what about other patches https://github.com/Araq/Nim/pulls/avsej ? |
09:24:11 | Araq | and btw you're rewarded with Nim's way in that then your stuff works out of the box with memory mapped files |
09:25:31 | Araq | avsej: usually things start as const boehmLib = "libgc.so.1" |
09:25:51 | Araq | and then bugfixes come, turning nice code into: |
09:25:58 | Araq | const boehmLib = "/usr/lib/libgc.so.1" |
09:26:15 | Araq | in other words check git history |
09:26:22 | * | vendethiel quit (Ping timeout: 272 seconds) |
09:26:47 | avsej | so I have to write workaround for multiarch systems? |
09:27:23 | Araq | no, it's likely I'll accept your PR anyway |
09:27:40 | Araq | but it would be nice to know why somebody used /usr/lib here |
09:28:03 | avsej | I checked history |
09:28:10 | avsej | it was /usr/lib from the beginning |
09:28:11 | Araq | what does it say? |
09:28:38 | avsej | https://github.com/Araq/Nim/commit/cdf03b06b93d8bf5023d7c4b38a761675a20d514 |
09:29:26 | kokozedman | is there an os.getAppFilename() that does NOT resolve symlinks? |
09:29:33 | kokozedman | I mean, an alternative |
09:29:59 | avsej | oh it was moved |
09:31:30 | Araq | kokozedman: there is always os.paramStr(0) and posix.nim |
09:31:53 | kokozedman | Araq, oh, nice... didn't that it was there! thanks! |
09:32:45 | avsej | yes, from beginning |
09:33:07 | Araq | avsej: proof? ;-) |
09:34:01 | avsej | https://github.com/Araq/Nim/commit/db4f617afcd095db087dcb52e3ea603cca111da7 |
09:34:20 | avsej | here the file was first created |
09:34:51 | avsej | in fact old history does not have commit granularity, looks like you put only releases there |
09:36:17 | kokozedman | might sound silly of me, but Error: conversion from cstring to string is invalid ... trying basename(...).string |
09:36:37 | Araq | kokozedman: use $ like the rest of us |
09:37:01 | Araq | avsej: at one point I moved from bzr to git |
09:38:02 | avsej | i never understand how to work with bzr branches and history. it looks like written by extraterrestrial mind |
09:38:26 | Araq | ok, that means your PR is fine :P |
09:40:46 | Varriount | Good morning Araq |
09:41:19 | Araq | Varriount: hi |
09:43:27 | * | vendethiel joined #nim |
09:45:43 | * | Jehan_ joined #nim |
09:45:48 | Araq | Varriount: as i said, we need pcre64.dll and pcre32.dll and the same for the open ssl dlls |
09:46:03 | Araq | and every other DLL we ship with Nim |
09:46:11 | Varriount | Araq: Yes, I have those, I think. |
09:46:33 | Varriount | However, I'm wondering, should we keep the non-essential header and lib files that Mingw-w64 comes with? |
09:46:46 | Varriount | libgomp, etc |
09:47:44 | Araq | also apparently our installer doesn't modify PATH for Aporia's GTK stuff |
09:49:33 | Varriount | Araq: What archive format does the Mingw-w64 binary need to be in? |
09:50:09 | Araq | zip |
09:50:31 | Araq | maybe nsis can handle others? |
09:52:34 | Varriount | Araq: Apparently not. |
09:53:16 | Varriount | Araq: Sometimes I wish we could use WIX (Windows installer toolchain) |
09:53:35 | Araq | no way, that's insane. |
09:53:50 | Varriount | Araq: Have you actually used it before? |
09:54:00 | Araq | "all you need to do is to generate an XML with GUIDs for *every* single file" |
09:54:18 | Varriount | Ok, there is that. :3 |
09:54:30 | Araq | Varriount: I tried it. |
09:54:37 | Varriount | Ah. |
09:54:40 | Araq | I tried to use it. |
09:55:21 | avsej | Araq, what do you think if koch (and niminst) will be able to create xz tarballs? https://github.com/Araq/Nim/pull/2805 |
09:57:20 | Araq | avsej: I love it. :-) |
09:58:01 | Varriount | At some point, we're just going to need an 'archive' command with a format specifier. |
09:58:08 | * | gokr quit (Quit: Leaving.) |
09:58:47 | Varriount | Araq: Ok, I've got a zipped mingw package ready. Compressed size is 27MB, Uncompressed is 87MB |
09:59:29 | Araq | that's pretty good, the old ones are 29 and 30MB |
10:01:01 | Varriount | Oh wait, I was off by 2 |
10:01:26 | Varriount | Hm, this looks interesting: http://win-builds.org/doku.php |
10:05:13 | * | vendethiel quit (Ping timeout: 264 seconds) |
10:07:08 | Varriount | Araq: Perhaps, one day, Nim could have an installer fully written in Nim. |
10:07:55 | * | Demon_Fox quit (Quit: Leaving) |
10:09:31 | * | IronY quit (Remote host closed the connection) |
10:10:15 | * | IronY joined #nim |
10:14:35 | Araq | Varriount: we should get Nim into win-builds. Looks nice. |
10:17:13 | Varriount | Araq: Incidentally, I just happen to have the 'Creating new packages' page open. ;D |
10:20:07 | * | sepisoad quit (Ping timeout: 250 seconds) |
10:24:41 | * | vikaton joined #nim |
10:25:39 | Varriount | Araq: Do we need pcre, or pcre2? |
10:26:16 | Araq | dunno. prce 1 |
10:27:39 | vikaton | Varriount: did you see Raafe's reply ... |
10:28:40 | Varriount | vikaton: Do I want to? |
10:28:56 | vikaton | No you do not, but you must |
10:29:18 | vikaton | his answer got collapsed from being downvoted, and he claimed you and the Nim community are dishonest |
10:29:32 | Varriount | O_o |
10:29:39 | vikaton | (downvoted too much) |
10:30:03 | Varriount | If he wants, he can look at the IRC logs, however I didn't ask anyone to downvote him. |
10:30:27 | vikaton | Varriount: yes, but other people did who saw his answer did |
10:30:56 | * | dddddd joined #nim |
10:30:58 | vikaton | he said you were dishonest since what you said what "completely untrue" |
10:33:02 | vikaton | Varriount: at the bottom, http://www.quora.com/Is-Nim-really-that-unsafe |
10:36:25 | Varriount | vikaton: Should I answer him? |
10:37:09 | vikaton | Varriount: I think you should |
10:37:14 | Araq | Jehan_'s answer is already perfect: http://forum.nim-lang.org/t/1246/2 |
10:38:38 | OnO | Araq: hi, if you remember our chat, it won't work since macro can't see AST in block in following example: for x in macro(...): ... block ... |
10:39:00 | OnO | would need callsite of callsite ;) |
10:39:10 | Varriount | vikaton: Fine, if you insist. |
10:39:14 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:39:34 | vikaton | Varriount: I just think we should at least disprove our "dishonesty" |
10:40:21 | Araq | OnO: I told you to split it into macros that keep the typechecker happy and a macro that does the optimizations |
10:40:35 | Varriount | "Sure, you can enable some runtime checking, but it comes at a heavy performance hit." <- Uh, yeah, since when wouldn't it? |
10:40:59 | Varriount | Checking bounds doesn't come free (yet) |
10:41:26 | Jehan_ | Actually, most bounds checking is pretty cheap. |
10:41:45 | Jehan_ | More importantly, this is an overhead that practically any memory-safe language has to pay. |
10:41:52 | OnO | Araq: that would require replacing for loop into some ugly User.each(....): ... block ... |
10:42:15 | Araq | it's more likely that the guy doesn't know that the debug mode also enables line tracing |
10:42:21 | Jehan_ | Unless you can statically prove that it's unnecessary (which modern compilers are also pretty good at). |
10:42:40 | Varriount | Jehan_: I don't suppose you could answer that person? I'm afraid I may not be able to articulate well enough the information needed. |
10:43:17 | Jehan_ | Varriount: I don't have a Quora account and I don't really want to get involved in this, I fear. |
10:44:08 | Jehan_ | As they say, this can be like mudwrestling a pig. You get covered in mud and only the pig gets to enjoy it. :) |
10:44:09 | Araq | OnO: no, it requires some .ormoptimize annotation for the whole proc |
10:44:28 | Araq | Varriount: just quote Jehan_'s forum post |
10:44:29 | Varriount | vikaton: If you want to answer him, go ahead, but I have feelings similar to that of Jehan_ |
10:44:43 | Varriount | Plus, I'm trying to figure out how to compile OpenSSL from source at the moment. |
10:44:59 | vikaton | mhm |
10:45:05 | vikaton | I;;; try |
10:45:38 | Varriount | Araq: Jehan_'s post doesn't quite answer the whole "optimizes out null dereferencing" and "bounds checking" information. |
10:45:41 | vikaton | T'll try* |
10:45:48 | Varriount | *I'll try |
10:46:02 | vikaton | sorry, 6:46 in the morning |
10:46:06 | Jehan_ | Varriount: The truth is, Nim *can* optimize out null dereferencing at this point. |
10:46:36 | vikaton | Jehan_, so the damage is self-inflicted ? |
10:46:36 | Varriount | Sorry, I mean, optimizes out the null check for dereferencing. |
10:46:51 | Varriount | "Sure, you can enable some runtime checking, but it comes at a heavy performance hit. The errors are safe-inflicted? In the example I linked, Nim happily optimized out the null check. What's the one other language that does that? Oh right, C." |
10:46:52 | Jehan_ | This is where you get to the mudwrestling part, because explaining the details here won't help you against a guy who's just out to score points. |
10:47:28 | Jehan_ | Varriount: Yes, and Nim still does that (well, with clang anyway, gcc doesn't for the reason I'd explained). |
10:47:30 | vikaton | Araq, the FAQ about unsafety sounds alot better |
10:48:34 | * | banister joined #nim |
10:48:39 | vikaton | Varriount: should I just link him to that forum post? |
10:48:52 | Varriount | vikaton: Up to you. |
10:49:06 | Araq | vikaton: no, *quote*, not *link* |
10:49:12 | Araq | nobody wants to follow links |
10:49:37 | Araq | you'll immediately get 50% fewer readers with a link |
10:49:39 | Jehan_ | The correct answer here is therefore: Yes, but <lengthy explanation>, at which point your opponent will pounce on the "yes" and ignore the rest. |
10:49:44 | Araq | (yes, I made up that number) |
10:50:29 | Varriount | Araq: I wouldn't be surprised if your number was close to truth though. |
10:51:46 | vikaton | Idk what exactly to quote |
10:52:18 | vikaton | I think I should just invite him over to the irc or forum to discuss this more formally, if you guys would want him in any of those |
10:53:09 | Jehan_ | vikaton: Probably not worth it, he sounds like a typical internet advocate. |
10:53:12 | avsej | Araq, do you like it now? https://github.com/Araq/Nim/pull/2805/files |
10:53:34 | Jehan_ | The thing is, he has a point, but greatly exaggerates it. |
10:53:38 | avsej | now it does not look like new functionality |
10:54:25 | Jehan_ | Anyhow, see you guys later. :) |
10:54:27 | * | Jehan_ quit (Quit: Leaving) |
10:54:39 | vikaton | quoting that last part to him |
10:58:39 | Araq | vikaton: you can also add that --nilChecks:on will be added to the compiler but we prefer to fix real problems instead of pleasing the people who are on a FUD campaign against Nim. |
10:58:59 | vikaton | #rekt |
10:59:07 | Varriount | Araq: Glad to see you're as tactful as ever. :P |
10:59:30 | * | vendethiel joined #nim |
11:01:06 | * | xcombelle joined #nim |
11:07:17 | avsej | Araq, for now we can just update reference to submodule https://github.com/Araq/Nim/pull/2806 (instead of removing it out of the tree) |
11:07:46 | Araq | just remove it. |
11:08:03 | Araq | rename the silly build.sh while you're at it |
11:08:28 | Araq | very confusing that the git repo has a build.sh that has nothing to do with our generated build.sh file |
11:08:50 | Araq | bbl |
11:10:15 | avsej | ok |
11:13:00 | * | Ven joined #nim |
11:13:24 | * | [CBR]Unspoken quit (Ping timeout: 272 seconds) |
11:14:06 | * | [CBR]Unspoken joined #nim |
11:14:20 | OnO | also.. ignore *.obj file too |
11:14:26 | OnO | (Windows wise) |
11:18:08 | avsej | OnO, where? in nim project? |
11:18:16 | OnO | csources |
11:18:28 | OnO | you just ignored *.o, please do the same for *.obj |
11:19:17 | avsej | with this pr https://github.com/Araq/Nim/pull/2807 csources will be ignored altogether |
11:20:15 | * | anthgur joined #nim |
11:21:09 | * | vendethiel quit (Ping timeout: 265 seconds) |
11:21:12 | * | Jehan_ joined #nim |
11:26:52 | * | wb joined #nim |
11:28:23 | * | milosn quit (Quit: leaving) |
11:39:39 | Varriount | Has anyone actually measured the performance impact of various runtime checks? |
11:40:11 | Varriount | Araq: I don't suppose you could be persuaded to make -d:release keep bounds checking on? |
11:40:12 | * | anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
11:40:20 | vikaton | ^ |
11:41:03 | BlaXpirit | there are separate flags |
11:41:06 | vikaton | keep bounds checking on by default |
11:41:15 | BlaXpirit | if u want bounds checks, u enable them |
11:41:15 | vikaton | and turn it off at programmers expense |
11:41:19 | BlaXpirit | i disagree |
11:41:25 | Varriount | BlaXpirit: Yes, I know. |
11:42:08 | BlaXpirit | another solution is making more of those modes |
11:42:24 | BlaXpirit | release being the middle ground between "debug" and "crazy performance" |
11:43:32 | vikaton | thats sounds like a good idea ^ |
11:44:04 | BlaXpirit | lol so typical |
11:44:12 | BlaXpirit | submodule gets removed soon after it's added |
11:44:25 | Varriount | O< |
11:44:26 | BlaXpirit | i used them in a few of my projects and always had to get rid of them |
11:44:33 | vikaton | one thing I dont understand is people complain about unsafety in release mode having those check off, but they completely ignore the purpose of debug mode |
11:53:32 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
11:53:50 | Araq | Varriount: -d:release is not hard coded in the compiler anyway |
11:53:52 | Jehan_ | Varriount: What you really want is a separate option, e.g. -d:memsafe |
11:54:01 | * | banister joined #nim |
11:55:01 | Varriount | Araq: I know that. I'm talking about modifying the default configuration file. |
11:55:08 | * | banister quit (Client Quit) |
11:55:12 | Araq | and if you have bound error bugs in your release version there is some serious problem with your testing, but again, Nim can even patch your broken development cycle by letting you leave bound checks on in a release build |
11:55:48 | * | Kingsquee quit (Quit: Konversation terminated!) |
11:55:49 | Jehan_ | Araq: Umm, buffer overflows are a pretty common problem. |
11:56:12 | Jehan_ | Bugs happen, but you want to still contain their effect. |
11:56:14 | Araq | Jehan_: yes. caused by the *lack* of a debug version in C. |
11:56:36 | Jehan_ | Araq: Huh? |
11:56:49 | Araq | C doesn't do any bounds checking. |
11:57:08 | Araq | and it's particularly hard to fix |
11:57:42 | Araq | because C converts an array to a pointer for parameter passing |
11:57:46 | Jehan_ | Araq: Oh, I see. Still, even in languages with bounds checking, they still occur. |
11:58:14 | Araq | yeah but at the end of the day |
11:58:19 | Jehan_ | Simply because off-by-one errors and such are one of the more common bugs. |
11:58:34 | * | ozra joined #nim |
11:58:36 | Araq | if you develop security related software, you need to know your compiler and its switches |
11:58:38 | Jehan_ | And the cost of guarding against them is pretty low. |
11:58:49 | Araq | there is no way around this fact |
11:58:51 | Araq | bbl |
12:01:55 | * | JehanII joined #nim |
12:01:55 | * | Jehan_ quit (Read error: Connection reset by peer) |
12:02:05 | * | JehanII is now known as Jehan_ |
12:02:52 | * | banister joined #nim |
12:07:44 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:08:18 | * | gokr joined #nim |
12:08:23 | * | gokr quit (Read error: Connection reset by peer) |
12:09:21 | * | gokr joined #nim |
12:11:55 | ozra | Araq: You around still? Wanted to get a clear picture: `proc(a, b: int = 47)` - does that mean that default values are propagated like types? |
12:16:26 | * | ekarlso quit (Changing host) |
12:16:26 | * | ekarlso joined #nim |
12:17:22 | * | gokr_ joined #nim |
12:19:51 | Varriount | ,echo("Hello") |
12:20:01 | Varriount | .echo("Hello") |
12:20:16 | Varriount | Oh well, looks like the eval bot isn't on. |
12:22:24 | * | k2nr joined #nim |
12:22:33 | * | vendethiel joined #nim |
12:23:11 | * | k2nr quit (Client Quit) |
12:23:13 | ozra | varriount: there is such a thing? Why is it not _almost_ on the front page? That's a super feature to lure in people who didn't know how cool it is.. like me. |
12:26:08 | * | Jehan_ quit (Quit: Leaving) |
12:26:09 | * | gokr_ quit (Read error: Connection reset by peer) |
12:26:37 | * | maacl joined #nim |
12:26:39 | Araq | ozra: yes, default values are like types in this respect |
12:27:22 | ozra | cool. so (a: int, b: int = 47) would do what I intended? |
12:27:30 | Araq | exactly |
12:27:53 | maacl | Just starting out using nim so this might be a really silly question, but doesn't nim-mode support compiling/running from within emacs? |
12:28:25 | ozra | About the void, I ask here if you have the time, is it deprecated or did my C++-luggage get the better of me? I intended to made it more explicitly obvious to the reader that no return value is used, to put focus on the mutable arg. |
12:28:48 | ozra | Araq: ^ |
12:28:50 | Araq | maacl: reactormonk should be able to answer that question |
12:29:26 | Araq | ozra: maybe but we don't want to show people non-idiomatic code in the manual |
12:29:47 | ozra | What's the good-thing-todo-tm way of putting it? |
12:29:55 | Araq | if there is no return type, why write one? |
12:30:40 | Araq | (yes I can hear all the type theorists cringe) |
12:31:00 | ozra | You read my mind! haha. Ah, I'd assume then it's infered, but ofc inference is depr on that right? |
12:31:05 | * | anthgur joined #nim |
12:31:35 | ozra | ie, returning value is good style, not should be clearly visible.. |
12:31:42 | maacl | reactormonk: Does nim-mode support compiling/running nim code from within emacs? I can only find compile to js function. |
12:31:46 | Araq | no, it's not infered either, proc foo() means proc foo(): void. always. |
12:31:57 | ozra | But anyways, I'll just remove it now. |
12:33:19 | Araq | ozra: recently a type theorist convinced me that 'void' is wrong too, it should be 'Unit' ;-) |
12:34:18 | Araq | if you conflate "halts" with "returns value", that is. |
12:34:48 | ozra | Unit - well, we all have out 'home base nomenclature', haha. Nim gets away with it by using the `proc` keyword inst. of `func` anyway. A func without ret-val would be *sound-of-swords-chopping-of-heads*, hehe |
12:35:22 | ozra | "halts"? |
12:35:35 | Araq | halting problem |
12:36:44 | vikaton | Halt and Catch Fire |
12:36:46 | ozra | Sounds like something out of the type domain... flow graph |
12:38:35 | * | Ven joined #nim |
12:42:32 | avsej | Araq, https://github.com/Araq/Nim/pulls/avsej |
12:44:10 | Araq | avsej: meh. |
12:45:14 | * | vendethiel quit (Ping timeout: 272 seconds) |
12:46:15 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:47:25 | avsej | Araq, fixed |
12:50:41 | * | vendethiel joined #nim |
13:00:29 | Araq | hrm somebody got rid of all the T/P prefixes in Nim ... nice. |
13:04:50 | * | Ven quit (Read error: No route to host) |
13:05:31 | * | banister joined #nim |
13:08:05 | * | anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
13:12:15 | * | vendethiel quit (Ping timeout: 265 seconds) |
13:15:50 | * | vendethiel joined #nim |
13:17:56 | * | ddl_smurf quit (Quit: ddl_smurf) |
13:34:41 | Araq | avsej: wow you're quick. impressive |
13:39:24 | * | Aszarsha joined #nim |
13:42:03 | * | BlaXpirit-UA joined #nim |
13:42:03 | * | vendethiel quit (Ping timeout: 250 seconds) |
13:44:45 | * | taesoo joined #nim |
13:45:02 | * | BlaXpirit quit (Ping timeout: 246 seconds) |
13:50:57 | coffeepot | dom96 heya, can I make a feature request for Aporia? |
13:51:05 | * | Ven joined #nim |
13:52:16 | Araq | coffeepot: always. |
13:52:18 | * | Jehan_ joined #nim |
13:52:48 | coffeepot | I'm flapping about all over source code atm, if there is a simple way to have bookmarks so I can CTRL-1 to go to a particular place in the code, that would increase my productivity immensely |
13:54:10 | flaviu | It might be possible to integrate neovim with Aporia.. That'd be incredible. |
13:54:31 | coffeepot | If I were being cheeky I'd ask for mouse over tooltips for the type of a variable, but I think this will a) require work on nimsuggest and b) not be trivial. Hopefully bookmarks wouldn't take too much work but would be incredibly useful |
13:55:07 | * | milosn joined #nim |
13:56:23 | Jehan_ | flaviu: That's actually one of my main issues with IDEs. The productivity gains their features may offer are destroyed by me having to work with an unfamiliar editor. |
13:56:52 | Araq | coffeepot: my biggest gripe is the lack of a "command line" so I can say 'open ../foo/bar.nim' instead of using that dreaded UI for navigation |
13:57:07 | coffeepot | I am enjoying working with Aporia, it's pretty good! Great example of a decent sized Nim project in itself. Secretly I wish I had IDEA support though. I would love integrated debugging and mouse over tooltips. |
13:57:24 | vikaton | does this guy still use Nim in his project? https://news.ycombinator.com/item?id=9050114 |
13:57:44 | Araq | vikaton: I think so but it's hard to tell |
13:58:00 | coffeepot | Araq: yeah ideally you don't want to have to use the mouse when programming, if possible. Kinda breaks the flow |
13:58:15 | flaviu | coffeepot: I just used IDEA for a little bit recently. The debugger is amazing! |
13:58:21 | coffeepot | i know, right! :D |
13:58:43 | Araq | Jehan_: and yet common wisdom says "all your time is spent on reading/debugging", not writing :P |
13:58:49 | flaviu | The comments in the source code with the contents of the variables and the results of expressions? |
13:59:00 | coffeepot | I had a quick look into what would be required to have IDEA work with Nim and promptly gave up as way over my head :) |
13:59:05 | vikaton | Araq, is 3DICC still using Nim ? |
13:59:08 | Jehan_ | Araq: That's something that IDEs don't really help with, either. |
13:59:26 | Jehan_ | coffeepot: Yeah, same here. |
13:59:43 | Araq | Jehan_: oh but they do. the navigation features alone are hard to live without |
13:59:55 | Jehan_ | IDEA is a pretty amazing piece of software, but the work needed to extend it is sized accordingly. |
14:00:10 | Araq | vikaton: yes |
14:00:19 | Jehan_ | Araq: For the most parts, tags are all what I need for navigation. |
14:01:44 | Araq | flaviu: does that debugger work with native code too? or only Java? |
14:02:19 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:02:22 | flaviu | https://www.jetbrains.com/clion/ is coming out soon, I'd be surprised if it didn't support all that fancy debugger stuff. |
14:02:39 | onionhammer | its already out, isnt it? |
14:02:40 | Araq | that doesn't answer my question |
14:02:42 | onionhammer | it costs $$ |
14:03:18 | flaviu | Araq: The Java version of IDEA does not support debugging C code. |
14:03:57 | coffeepot | I'd pay for an IDEA product if they supported Nim, no problem. Besides it's quite reasonably priced IMO (unlike, say, Delphi) |
14:04:39 | Araq | coffeepot: really? you don't even pay for Nim. :P |
14:04:40 | flaviu | coffeepot: You can add Nim support to IDEA if you have the time. |
14:04:50 | vikaton | cool |
14:05:24 | coffeepot | I must say though, big fan of IDEs and integrated debugging. Was writing an octree structure last night and it took me ages to work out where I'd gone wrong with printing out debugging data. Probably could have been solved easily by following in an IDE |
14:06:32 | coffeepot | Araq, yes Nim's not only free but open source! Can't complain in any way :D |
14:07:05 | Araq | coffeepot: interesting. I like IDEs for navigation and quick feedback but I found debuggers to be mostly useless |
14:07:18 | * | vendethiel joined #nim |
14:07:50 | coffeepot | well, there's nothing quite like being able to step through code line by line and see all your locals (or even change them). Especially useful on recursive structures for example |
14:08:33 | Araq | yeah I have heard that a lot. whenever I do that, the decision of "step into" vs "step over" completely kills my productivity |
14:09:08 | Jehan_ | It depends for me. Sometimes debuggers just don't help me getting to the cause of the error, other times they are invaluable. |
14:09:14 | Jehan_ | When I can even use them, that is. |
14:09:35 | Jehan_ | Too often (especially with concurrent programming), there's very little point to them. |
14:09:36 | ozra | coffeepot: Araq: Why make a specific IDE, instead of extending, say Sublime, Komodo, Atom, or x? |
14:09:37 | coffeepot | haha yes completely know what you mean. The worst is when you accidently step over at the critical point you want to step in and have to rerun the whole program again (or is that just me? :D) |
14:10:01 | Jehan_ | ozra: There's a Sublime Text package for Nim. |
14:10:09 | coffeepot | I used to use sublime before Aporia |
14:10:16 | Jehan_ | coffeepot: That's what time-travelling debuggers are for. |
14:10:21 | flaviu | coffeepot: There's some exciting stuff coming along in debuggers to have rewindable debugging. |
14:10:22 | Jehan_ | See OCaml, for example. :) |
14:10:42 | coffeepot | wow... okay time travelling debuggers - that sounds incredible! |
14:10:51 | coffeepot | 5 dimensional, right? :) |
14:11:02 | Jehan_ | OCaml has had so much good stuff for a couple of decades ... |
14:11:23 | Jehan_ | coffeepot: Well, basically, it allows you to undo your debugging steps. |
14:11:37 | flaviu | coffeepot: One method I remember is storing the results of system calls. Everything else is deterministic, so the program can just be run as normal. |
14:11:51 | Jehan_ | The downside with OCaml is that it only works for the bytecode target, but that's still incredibly helpful. |
14:12:19 | Araq | ozra: mostly for the same reasons why we developed a hole new programming language. NIH syndrome. |
14:12:49 | ozra | Jehan_: Yeah, I found sublime through that, haha. Used Atom before, but it's slow, crashes, etc. etc. And Sublime obviously is it's god inspiration wise. I like it. $70 is an ok price. |
14:13:11 | Jehan_ | ozra: I'm still using Vim, alas. :) |
14:13:23 | * | ddl_smurf joined #nim |
14:13:27 | Araq | also known as "some people believe in progress". |
14:13:38 | coffeepot | I wouldn't pay $70 for sublime, it seems over hyped to me. I would chuck $70 at JetBrains though :3 |
14:13:57 | ozra | Araq: Hahaha. Well, I'm a great fan of "nothing in existance is good enough - let's make something better.", and definitely non-fan of "NIH - let's waste precious resources making something incompatible" ;) |
14:14:11 | ozra | Araw: And there I made the distinction.. |
14:14:54 | coffeepot | ozra: there's a quote on the nim stdlib page that seems to apply "The good thing about reinventing the wheel is that you can get a round one." |
14:15:02 | ozra | Jehan_: I use vim alot "on the side", simply because some things are easilier pulled off there, but then I jump right back in to editor X after doing those specific things. |
14:15:12 | * | ddl_smurf quit (Client Quit) |
14:15:46 | Jehan_ | ozra: Well, I've been using Vi(m) for over 25 years now. Old habits and all that ... |
14:15:50 | ozra | coffeepot: I like that. I re-invent a lot of wheels - but never if there is a wheel I fid acceptable to begin with. "Round enough". |
14:16:47 | flaviu | Sometimes all that's available is a steel wheel when I want a concrete wheel. |
14:16:52 | coffeepot | ozra, completely agree. And that's why I'm here. Some nicely round wheels in motion with Nim |
14:17:25 | ozra | Jehan_: I guess about 18 for me.. Used the amiga before that, only switched to intel when I discovered linux in '97 and then I got in to vim :) Well, first XFTE actually. It rocked. Think it fell of the earth or something. I hacked for a while, but felt it was wasted dev-time in the end.. |
14:17:43 | Araq | "something incompatible" mostly means "incompatble with Unix". which itself never gave any fuck about compatibility and used LF when the rest of the world used CR-LF. |
14:18:09 | Araq | whenever we're incompatble with Windows, nobody complains. |
14:18:18 | ozra | coffeepot: deffo, and som NIH-warnings on some small parts, and some things one wants to "fix", which is wonderful since it's MIT :) |
14:18:24 | * | Aszarsha_ joined #nim |
14:18:52 | Jehan_ | Hmm, I just tried "nimble install aporia" on OS X and it doesn't even compile. |
14:19:31 | Jehan_ | Doesn't recognize an identifier "False". Looks like a capitalization issue? |
14:19:46 | Araq | Jehan_: you need to install aporia#head |
14:20:06 | Araq | and no, I don't know why nobody fixes this. |
14:20:07 | Jehan_ | Araq: Will try. Was just some sudden curiosity. |
14:20:20 | ozra | Araq: Yeah, that's a truth, but that's mankind et all. Let's say, "I like tools in the *nix universe to play along as well as possible"... an editor that ignore font-rules (Atom) - blargh! The "errors are not spit on stderr" in Nim is a small such annoyance with me, I hope a PR can be accepted when I get around to it. It breaks to much of the "programming environment that shells represent" |
14:22:19 | * | Aszarsha quit (Ping timeout: 245 seconds) |
14:22:21 | ozra | Araw: Well, ofc it's subjective, I've never had windows, simply because when I switched to the intel platform is sucked so much balls that _I_ started choking. And I've never really re-evaluated it since. No need. |
14:22:45 | coffeepot | I think I'm one of the few windows users here :) |
14:22:47 | * | Aszarsha_ quit (Ping timeout: 250 seconds) |
14:23:04 | * | kumul joined #nim |
14:23:05 | IronY | Hello Guys I am IronY, and I am IronYs Bot |
14:23:14 | ozra | Ofc, I want a cross-platform app to behave with all it's intendended target OSes, even if I don't use them. |
14:23:49 | ozra | flaviu: Way to few concrete wheels out there, donät you think!? haha |
14:23:59 | Araq | hello IronY I'm the greeting bot of Nim. |
14:24:35 | flaviu | Araq: Didn't you actually have a greeting bot set up at one point? |
14:25:00 | Araq | flaviu: no, that's a myth. |
14:25:14 | Araq | I always greeted everybody personally |
14:25:41 | ozra | Ok, I'll get to those doc-changes.. |
14:26:30 | * | ddl_smurf joined #nim |
14:27:40 | * | IronY bows to Araq |
14:27:41 | IronY | lol |
14:27:42 | IronY | I am not a bot |
14:27:43 | IronY | I promise |
14:28:16 | * | vendethiel quit (Ping timeout: 244 seconds) |
14:29:07 | * | pregressive joined #nim |
14:29:09 | coffeepot | ^ that's exactly what a bot would say |
14:30:48 | * | ddl_smurf quit (Ping timeout: 252 seconds) |
14:32:20 | ozra | coffeepot: hahaha |
14:33:21 | ozra | Araq: docs fixed. |
14:33:22 | Araq | ozra: that said, our split of nimsuggest vs Aporia is as friendly as it can get for alternative editors/IDEs |
14:34:17 | Jehan_ | Incidentally, I would like to thank whoever got rid of the csources submodule. |
14:34:34 | coffeepot | did I hear that nimsuggest would support parameter names too somewhen? Looking forward to that if so :) |
14:35:10 | Araq | coffeepot: already does. |
14:35:19 | Araq | implemented that one weeks ago. |
14:35:54 | ozra | Araq: Yeah, I really like the nimsuggest concept, it's akin to the typescript IDE "compile server". If it's general enough, perhaps it could be used as an incremental, caching, build daemon too? Speeding up dev compile-cycles and avoiding re-lexing and parsing? Haven't looked at it yeat, just thinking aloud based on the description.. |
14:37:46 | Araq | ozra: that's what we tried with "nim idetools". that one supported incremental C building. in theory. |
14:38:42 | Araq | I threw it away cause sometimes "limited but working" >> "does everything and ... doesn't work" |
14:39:03 | Araq | now if only I had applied that wisdom to Nim itself :P |
14:39:39 | coffeepot | Araq: it does?! Awesome! I'm running 0.11.2 - should probably update :) |
14:40:02 | Araq | coffeepot: that patch made it into 0.11.2 ... |
14:40:08 | ozra | Araw: In Nim domain it should be possible to build a incremental compiler me thinks.. I'm still getting into the compiler, but, it does whole-program analysis, no? |
14:40:20 | ozra | Being somewhat open world and all.. |
14:40:34 | ozra | Araq: ^ misspelled.. |
14:41:03 | coffeepot | Araq - how do I enable the param suggestions in Aporia? |
14:41:23 | flaviu | ozra: Try tab completing names in your irc client. That's what I do. |
14:41:40 | * | vendethiel joined #nim |
14:41:55 | dom96 | coffeepot: sure, I won't be around here much today. Please make an issue on github for your feature request :) |
14:42:01 | Jehan_ | Araq: Why does nimsuggest default to *:6000 for host and port? |
14:42:02 | ozra | flaviu: Wow, didn't even consider trying that. Thanks! |
14:42:11 | coffeepot | dom96, cool will do :) |
14:42:53 | Araq | Jehan_: no idea. I took it over from zahary's work on idetools. |
14:42:54 | Jehan_ | 6000 is the X11 default port and I'd expect the host to be 127.0.0.1 by default (for security reasons). |
14:43:45 | coffeepot | ... finally time to sign up for github. Now I have to think of a name :( |
14:43:54 | Araq | coffeepot? |
14:44:16 | coffeepot | Araq: hmm that would make sense... |
14:44:32 | coffeepot | taken tho |
14:44:46 | fowl | Araq, untyped works great now, and varargs[expr] seems fine too |
14:45:00 | fowl | ty^^ |
14:45:43 | Araq | fowl: er ... I don't think so. I didn't change anything. |
14:47:11 | Araq | there is a weird PR for fixing varargs[expr] though |
14:48:28 | fowl | er i just checked and varargs[expr] doesnt work right now |
14:48:40 | Araq | good. |
14:49:26 | fowl | untyped works well though :D |
14:50:43 | Araq | coffeepot: Aporia only supports 'sug' not 'con', ie '.' and not '(' |
14:50:54 | * | boopisaway is now known as boop |
14:51:41 | coffeepot | ah ok, I have that enabled already. I was thinking more proc myProc( .. lists all the versions of myProc and their parameter types |
14:51:43 | Araq | coffeepot: but reactormonk fixed a critical nimsuggest bug, so you might want to update anyway |
14:53:00 | coffeepot | Araq excellent, I thought there was something a bit off with nimsuggest, sometimes didn't work. Glad to hear it's been fixed, hopefully I can rely on it a bit more |
14:53:32 | * | TEttinger quit (Ping timeout: 252 seconds) |
14:56:30 | * | ddl_smurf joined #nim |
14:57:02 | * | ddl_smurf quit (Client Quit) |
14:57:07 | coffeepot | apparently there's a user on github called "nimnimnim" |
14:57:37 | coffeepot | making a new user on here is worse than choosing a name for an MMO character XD |
14:57:54 | flaviu | coffeepot: How about psC4BulP? |
14:58:23 | coffeepot | yep, that's available lol |
15:01:30 | * | xcombelle quit (Remote host closed the connection) |
15:05:25 | * | vendethiel quit (Ping timeout: 264 seconds) |
15:11:19 | coffeepot | dom96 I opened an issue on Aporia for the feature request but I dun no wot I doing, so couldn't work out how to add the 'feature request' label! |
15:12:18 | * | maacl quit (Ping timeout: 258 seconds) |
15:14:14 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:14:49 | * | vendethiel joined #nim |
15:17:26 | ozra | Araq: https://github.com/Araq/Nim/issues/2811 - I'm hacking on this now, so if there's strong resistance to it, I'd like to know early as to chose another strategy (hopefully not :) |
15:18:03 | * | vikaton quit () |
15:19:11 | Araq | ozra: ugh. the last time I thought about it, I came to the conclusion it's much better to fix the font you use for programming so that _ looks more like - |
15:19:15 | bassa | is the standard way to get a simple c pointer (to an array) from a nim array: addr somearr[0] ? |
15:19:33 | Araq | bassa: that is the standard way |
15:20:00 | coffeepot | doesn't that take the pointer for the first element? |
15:20:17 | ozra | Araq: I've considered that, but it's not always an option, and also, in some places one _do_ want the underscores, and to look like what they are. |
15:20:45 | coffeepot | is addr somearray[0] == addr somearray ? |
15:20:48 | ozra | Araq: the way I see it, there are only usides ;) |
15:20:53 | ozra | _upsides_ |
15:20:53 | bassa | yeah coffee, I reckon its because an array in c is just a pointer to the first element afaik |
15:21:06 | coffeepot | yeah i did wonder if that'd be the case :) |
15:21:15 | Araq | bassa: yeah but it's different for 'seq' |
15:21:27 | coffeepot | and string (from experience) ;) |
15:21:58 | Araq | ozra: but are your new dashes optional like _ in Nim? |
15:22:07 | * | Matthias247 joined #nim |
15:22:38 | def- | ozra: i don't think i want to read code and wonder if it's a - or — |
15:23:09 | ozra | Yes, ofcourse, they will be part of the _/Hump unification. I'm still learning the ropes of the editor, so it might take me a bit to get working. |
15:23:23 | ozra | def-: You of all people? ;) |
15:23:39 | coffeepot | also, isn't it possible to get the compiler to replace '-' with '_' with a setting? Sure I saw something like that... |
15:24:16 | def- | coffeepot: indeed: http://nim-lang.org/0.11.0/filters.html |
15:25:07 | coffeepot | would the link def- posted do what you want, ozra ? |
15:25:15 | ozra | def-: in such a code-base / modules, it will be very obious I promise you. And chances are you won't have to touch it. If I made a public module, I'd stick to more commonly used delimiters. But, as always, it should be up to the programming team to decide on coding standards.. Feel free to suggest a Unicode-rune that disambiguates best! |
15:25:53 | def- | ozra: i think unicode should be avoided in identifiers |
15:26:22 | def- | ozra: this solution for tabs instead of spaces should also work: https://pay.reddit.com/r/programming/comments/34ep78/nim_programming_language_0110_released/cqugfl3 |
15:26:31 | ozra | def-: It's completely optional to use, and Unicode is bonafide in identifiers already. |
15:28:26 | ozra | def-: - thanks for the links. Since I will use this in a biiig app, I'd prefer to avoid unnecessary processing steps if possible, to keep compilation time tight (which also an important factor in the app in question - it will bascially be re-compiled all the time as the primary use-case!) |
15:29:30 | ozra | Otherwise I could stick to my C++ + tranpiler setup. I'd like to ditch that.. |
15:29:49 | coffeepot | ozra just wanna say that Nim is very fast at compiling, and AFAIK only compiles changed code |
15:31:49 | ozra | coffeepot: yes, ofcourse, and this can be improved further in the future with iterative daemon based compiling (something I might take on, when the app is done and don't demand my resources full time), but still. If you don't like it - don't use it. If you like it, Nim is perfect to have it - since it already does the 'foo_bar' vs 'fooBar' unification.. |
15:33:04 | ozra | I can't really see any down-sides to a "non-user". You don't use it, you don't pay. I imagine there are alot more people then me that would appreciate it though. Nim could potentially attract lisp users. |
15:33:19 | ozra | (not based on this, but on it's extensible nature) |
15:34:16 | ozra | Only downside is one unicode-rune gets reserved for magic, while others are verbatim (like '_' is reserved for magic in identifers right now) |
15:35:10 | ozra | It's the only missing magic out of the "big three" imo. |
15:36:35 | ozra | Araq: (re-post this line, it became confusing:) Yes, ofcourse, they will be part of the '_'/Hump unification/magic. I'm still learning the ropes of the _compiler_ source, so it might take me a bit to get working. |
15:36:42 | * | Matthias247 quit (Read error: Connection reset by peer) |
15:37:15 | * | n0xff joined #nim |
15:43:56 | * | jsjoberg joined #nim |
15:45:54 | * | banister joined #nim |
15:48:16 | * | strcmp1 quit (Ping timeout: 255 seconds) |
15:52:52 | * | maacl joined #nim |
15:53:36 | * | xet7 quit (Quit: Leaving) |
15:55:53 | * | darkf quit (Quit: Leaving) |
15:56:33 | * | ddl_smurf joined #nim |
15:57:16 | * | OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
15:59:09 | * | Siecje joined #nim |
15:59:35 | * | BitR joined #nim |
16:00:31 | * | fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org - be a part of the Elite!) |
16:01:06 | ozra | Araq: Just give me a dictator power OK on the feature, pretty please, pretty plrease with sugar on top ;) (granted the obvious, that I make an unobtrusive clean implementatin ofcourse) |
16:03:20 | * | kumul quit (Quit: Leaving) |
16:06:40 | * | fowl_ joined #nim |
16:07:41 | * | fowl_ quit (Changing host) |
16:07:42 | * | fowl_ joined #nim |
16:07:59 | * | fowl_ is now known as fowl |
16:09:52 | * | notfowl joined #nim |
16:10:35 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
16:11:54 | * | fowl quit (Quit: Leaving) |
16:17:11 | * | ddl_smurf quit (Quit: ddl_smurf) |
16:18:14 | * | endragor_ joined #nim |
16:20:13 | * | maacl quit (Ping timeout: 255 seconds) |
16:21:25 | * | endragor quit (Ping timeout: 244 seconds) |
16:22:38 | * | endragor_ quit (Ping timeout: 252 seconds) |
16:29:03 | * | vikaton joined #nim |
16:36:38 | * | vsajip joined #nim |
16:36:58 | boop | is it intentional that nim c doesn't pass -m32 and friends to the compiler when you use --cpu:x? |
16:40:55 | gokr | boop: In my article http://goran.krampe.se/2014/11/03/squeak-to-nim/ I compile a 32 bit lib. |
16:41:05 | def- | boop: I guess. I always use --passC:-m32 --passL:-m32 |
16:41:38 | boop | gokr: yeah, i know how |
16:41:52 | boop | def-: hokay, but is there any case where that shouldn't automatically happen? |
16:41:58 | boop | or is it just a case of compatibility |
16:42:14 | def- | boop: if you're using a real 32bit compiler instead of a multiarch one, you don't need it |
16:43:11 | gokr | boop: I am guessing this is a case of "keeping it simple" - since... well, what happens on Windows using VCC etc? |
16:43:31 | boop | def-: mm. fair enough! |
16:45:56 | * | Siecje quit (Quit: Leaving.) |
16:47:19 | ozra | def-, boop: -march=native should be the best option unless cross-compiling to utilize arch maximally, no? |
16:47:43 | ozra | eh.. --cpu:x - sorry... |
16:48:03 | boop | ozra: compiling libs for a 32 bit program |
16:48:19 | ozra | boop: wrote prematurely, sorry! :) |
16:48:30 | boop | it's fine! :) |
16:49:29 | * | vendethiel quit (Ping timeout: 246 seconds) |
16:53:37 | reactormonk | ah duh, he left |
16:54:22 | * | strcmp1 joined #nim |
17:02:08 | * | biscarch joined #nim |
17:02:37 | * | xcombelle joined #nim |
17:03:07 | Araq | ozra: use the · from http://golang.org/src/runtime/asm_386.s |
17:03:29 | xcombelle | hi |
17:04:02 | Araq | that's rather far away from - and so doesn't cause confusions. IMO. |
17:04:11 | Araq | bbl |
17:23:59 | ozra | Araq: I added it in a comment on the issue. It looks a bit strange to me, but could actually be better than a 'dash-like' when one gets used to it - I'll use while testing to see.. |
17:24:17 | ozra | use _it_ |
17:28:55 | * | strcmp1 quit (Remote host closed the connection) |
17:29:15 | vikaton | Araq, confirmed, Exsig is still using Nim, I emailed him earlier |
17:29:20 | vikaton | imgay |
17:29:26 | vikaton | lol |
17:29:34 | vikaton | Sorry |
17:29:43 | vikaton | my friend took my laptop and he's quite immature :/ |
17:30:59 | ozra | immature gay guy, haha |
17:32:02 | reactormonk | vikaton, tell him to type "I'm using Windows" next time |
17:32:08 | Araq | ozra: all you need to do is to modify compiler/idents.nim and handle your rune like '_' |
17:33:25 | Araq | but I really wonder why you can't modify your font instead. |
17:34:39 | dom96 | Do we really want to introduce even more rules to the identifiers in Nim? |
17:36:18 | * | BlaXpirit-UA quit (Quit: Quit Konversation) |
17:38:09 | * | BlaXpirit joined #nim |
17:38:32 | * | Siecje joined #nim |
17:38:56 | * | vendethiel joined #nim |
17:49:23 | * | ddl_smurf joined #nim |
17:51:37 | * | saml joined #nim |
18:00:01 | * | n0xff quit (Quit: leaving) |
18:01:49 | * | cyraxjoe_ is now known as cyraxjoe |
18:11:10 | * | filcuc joined #nim |
18:12:52 | * | Jesin quit (Quit: Leaving) |
18:14:54 | * | Jesin joined #nim |
18:17:57 | * | sepisoad joined #nim |
18:18:42 | * | sepisoad quit (Read error: Connection reset by peer) |
18:27:08 | * | nande joined #nim |
18:55:38 | * | CryptoToad joined #nim |
18:56:17 | CryptoToad | Hey guys, was wondering if anyone had a sample of calling readProcessMemory from the windows API in Nim? |
18:58:06 | Araq | CryptoToad: I don't think so, but it looks interesting |
18:58:13 | Araq | what are you doing? |
18:58:48 | CryptoToad | well the end project is |
18:58:57 | ldlework | CryptoToad: dll injection / detouring etc? |
18:59:03 | CryptoToad | to scan through all running processes and scan for a string we know is related to a hacking program |
18:59:07 | ldlework | hah |
18:59:10 | ldlework | knew it |
18:59:25 | ldlework | CryptoToad: I used to be deep into windows RE |
18:59:29 | CryptoToad | ahh fun :) |
18:59:33 | CryptoToad | I'm pretty into it recently |
18:59:38 | CryptoToad | Nim makes it feel more like playing |
18:59:40 | CryptoToad | less like work |
19:00:11 | ldlework | CryptoToad: I worked ona project that was able to inject python into any process and you could detour internal functions and trampoline them to Python functions. |
19:00:20 | CryptoToad | ooohhh that sounds really handy |
19:00:23 | ldlework | The python function would get an object describing the stack, registers etc |
19:00:32 | CryptoToad | back in my vb days i made a program for trolling RAT kids |
19:00:32 | ldlework | It had a simple assembler built in etc |
19:00:37 | CryptoToad | it was basically a proxy on manual mode |
19:00:41 | CryptoToad | so you drove the connection |
19:00:52 | ldlework | CryptoToad: what's your target |
19:00:59 | CryptoToad | well atm it's just for watching for hacks |
19:01:04 | CryptoToad | like if somoene loads an exe |
19:01:16 | CryptoToad | it will see in memory that it contains say 'leethax.com private' |
19:01:18 | ldlework | you're writing a process watcher? |
19:01:22 | CryptoToad | yes exactly |
19:01:29 | ldlework | CryptoToad: ah so you're the enemy |
19:01:32 | CryptoToad | haha |
19:01:37 | flaviu | I've changed the theme on Nim By Example to be more mobile friendly :D |
19:01:37 | flaviu | https://nim-by-example.github.io/ |
19:01:42 | CryptoToad | well it may be for a botkiller ;) |
19:01:56 | ldlework | flaviu: looks good |
19:02:06 | ldlework | CryptoToad: what are you trying to protect? |
19:02:33 | CryptoToad | arbitrary, the protection shcema is the project |
19:02:40 | ldlework | gotcha |
19:02:45 | ldlework | CryptoToad: come to the dark side |
19:02:48 | CryptoToad | haha |
19:02:49 | ldlework | its way more fun |
19:02:54 | Araq | flaviu: nice, but https://nim-by-example.github.io/getting_started/ is somewhat outdated :P |
19:03:04 | Araq | it contains "Nimrod" |
19:03:27 | flaviu | Araq: Thanks! I noticed that, but it looks like I forgot about it. |
19:10:02 | * | Arrrrr joined #nim |
19:14:11 | * | filcuc quit (Ping timeout: 258 seconds) |
19:14:57 | ozra | Araq: Yeah, I reflected it in idents.nim and in hashes.nim, but it doesn't seem to work. When 'echo'ing there, the ident never even passes the fn in the test!? So I must be doing something strange.. But apparantly josephwecker already has this implemented but not PR'ed, if he had time today or tomorrow, he'd push it. |
19:18:39 | * | banister quit (Ping timeout: 256 seconds) |
19:19:31 | * | xcombelle quit (Remote host closed the connection) |
19:20:01 | * | strcmp1 joined #nim |
19:21:57 | Araq | don't touch hashes.nim, but lexer.nim |
19:22:20 | Araq | but again, why not simply change the font? |
19:26:02 | vikaton | flaviu: Have you tried git books? |
19:26:19 | flaviu | vikaton: yep, that's what I started with. |
19:26:35 | flaviu | I changed my mind and switched to nanoc after it deleted my work. |
19:26:37 | flaviu | :P |
19:26:48 | vikaton | oh lol |
19:27:20 | vikaton | imo, I think the bg color and font should be chnaged a bit |
19:27:23 | flaviu | https://github.com/GitbookIO/gitbook/issues/273 |
19:27:26 | BitR | flaviu: Would you mind adding a bit about how to discern objects from each other in the OOP section? I at least got surprised by the fact that 'is' is handled at compile time and that 'of' should be used during run time to check if an instance is 'of' an object type. |
19:27:49 | * | jefus joined #nim |
19:28:34 | flaviu | BitR: Sure. |
19:28:47 | BitR | cool :) |
19:28:54 | flaviu | vikaton: Can you be more specific? |
19:29:24 | vikaton | flaviu: imo, I think the bg should be white and the font a something like Raleway |
19:29:46 | vikaton | or something light and clean, like Windows 8's font :P |
19:30:32 | * | kokozedman quit (Quit: Leaving) |
19:32:07 | flaviu | vikaton: I'm going for more of a book-like feel. Paper pages are usually off-white and Palatino is a popular book font. |
19:36:21 | flaviu | Yeah, I don't like the way #FFF and Raleway look. |
19:36:58 | vikaton | you tried? |
19:37:21 | vikaton | flaviu: idk imo the current one seems kind of old-school |
19:37:42 | vikaton | though my age would explain why |
19:38:06 | * | brson joined #nim |
19:38:13 | avsej | is it possible to iterate all submatches of regexp? |
19:38:53 | avsej | var matches = findAll("foo://bar", re"((\w+)://)?") I expect matches to be ["foo://bar", "foo"] |
19:39:08 | avsej | but it returns only first capture group |
19:40:17 | flaviu | avsej: I don't think it's returning any capture group. |
19:40:24 | Araq | iirc 'find' that takes an openArray parameter does that, or use the =~ template |
19:40:27 | * | filcuc joined #nim |
19:40:34 | Araq | or the nre module |
19:40:41 | Araq | speaking of which ... |
19:40:55 | Araq | where is the nre PR? |
19:41:00 | avsej | is 're' deprecated? |
19:41:22 | flaviu | avsej: All I know is that nre is much better https://github.com/flaviut/nre/tree/0.6.1 |
19:41:30 | flaviu | And I'm not in any way biased here :) |
19:41:41 | Araq | not yet deprecated |
19:41:46 | Araq | but will be |
19:41:56 | avsej | flaviu, why not merge it today? |
19:42:29 | flaviu | avsej: Merge what? |
19:42:29 | avsej | oh, it is on nimble |
19:42:32 | avsej | okay |
19:42:46 | avsej | Araq, mentioned PR, I thought it is going to be part of core |
19:43:05 | flaviu | yep, but it was until recently blocked on another PR. |
19:43:28 | flaviu | https://github.com/Araq/Nim/issues/2511 |
19:46:43 | avsej | .nimble/pkgs/nre-0.6.1/nre.nim(302, 7) Warning: Special variable 'result' is shadowed. [ResultShadowed] |
19:46:44 | avsej | .nimble/pkgs/nre-0.6.1/nre.nim(383, 6) Hint: 'nre.renderBounds(str: string, bounds: Slice[system.int])' is declared but not used [XDeclaredButNotUsed] |
19:46:52 | avsej | flaviu, from nre |
19:46:57 | * | banister joined #nim |
19:47:00 | * | TEttinger joined #nim |
19:47:11 | BlaXpirit | flaviu, when are you gonna release nre :| |
19:47:25 | BlaXpirit | there are like 30 commits waiting |
19:47:38 | flaviu | avsej: I know, it's been fixed in a later version. BlaXpirit is right, I need to make a release. |
19:47:42 | BlaXpirit | hah, exactly 30 |
19:48:00 | avsej | ship it! :) |
19:48:21 | BlaXpirit | and the next release should be in standard library :> |
19:48:30 | flaviu | BlaXpirit: I'll do it today. I just have to fix #16. |
19:49:53 | * | Arrrrr quit (Quit: Page closed) |
19:50:14 | * | synthmeat quit (Quit: WeeChat 1.3-dev) |
19:52:09 | avsej | Araq, does github know about rename? https://dl.dropboxusercontent.com/1/view/p9chmqb3rjdeo9n/Apps/Shutter/Selection_159.png |
19:52:12 | * | synthmeat joined #nim |
19:52:24 | def- | avsej: yes, but they can't fix it currently |
19:52:24 | avsej | flaviu, what I'm doing wrong? https://gist.github.com/avsej/10f57b7dab44f0e0d007 |
19:52:51 | flaviu | avsej: Delete nimcache, recompile, repeat until it works. |
19:52:58 | avsej | ok |
19:54:02 | BlaXpirit | flaviu, really gotta do something about this. compiling cannot be the default, and not just because of this bug |
19:54:25 | avsej | cool works n |
19:56:16 | avsej | flaviu, does it support only named captures? |
19:56:26 | Araq | so who enabled "Conference Mode"? |
19:57:19 | BlaXpirit | avsej, false |
19:57:28 | flaviu | avsej: It supports named captures, it supports indexed captures. |
19:58:08 | avsej | what is conference mode? isn't it personal setting of IRC client? |
20:02:58 | * | vikaton quit () |
20:03:47 | * | OnO joined #nim |
20:05:07 | * | Matthias247 joined #nim |
20:07:49 | avsej | flaviu, I almost reproduced the test case from nre: https://gist.github.com/avsej/6418222f5338eb9954f0 but it does not work |
20:09:43 | flaviu | avsej: The documentation is probably wrong. Just add a .get() to the find operation, see https://github.com/flaviut/optional_t#operations for details. |
20:11:00 | avsej | https://github.com/flaviut/nre/blob/master/test/captures.nim#L48-L49 |
20:11:12 | avsej | https://github.com/flaviut/nre/blob/0.6.1/test/captures.nim#L48-L49 |
20:12:38 | avsej | Error: undeclared identifier: 'get' |
20:12:45 | avsej | this is what it says |
20:12:54 | ozra | Araq: Well 1. dash-delimiters are superior. And the rest is in the commentary on the issue now ;) |
20:13:57 | flaviu | avsej: Are you importing optional_t? |
20:14:19 | avsej | no, I though I have to import only if I use symbol |
20:14:30 | flaviu | avsej: The test suite uses optional_t.nonstrict to make the tests more concise, that's how they get away with not using "get". |
20:14:43 | avsej | ok |
20:14:44 | flaviu | avsej: Well, get is defined in optional_t |
20:14:56 | avsej | works now |
20:15:25 | avsej | okay I got idea, this is because ex.get is just syntax sugar for get(ex) |
20:15:30 | avsej | good to know |
20:16:16 | avsej | I've seen libraries doing 'import foo; export foo' is it to do it implicitly? |
20:16:19 | * | zahary joined #nim |
20:17:21 | ozra | Araq: Hmm, figured idents used hashes for "hashIgnoreStyle" for bucket ix hashing.. But as said, I haven't made the map in my head clear about the compiler code base yet - it's still a bit of a jungle.. |
20:17:27 | * | tdc joined #nim |
20:19:06 | * | GOOOBLES joined #nim |
20:20:35 | * | banister quit (Read error: No route to host) |
20:23:49 | * | vikaton joined #nim |
20:24:26 | flaviu | Hmm, should optionals be options? |
20:27:06 | flaviu | I think it's time for a little more bikeshedding ;) |
20:27:26 | notfowl | Hey which option t was decided on |
20:27:57 | flaviu | https://github.com/Araq/Nim/pull/2762 |
20:28:35 | * | notfowl is now known as fowl |
20:28:38 | avsej | flaviu, is it possible to initialize regexp from nri during compile time? |
20:29:08 | flaviu | avsej: Nope. https://github.com/flaviut/nre/issues/17 |
20:29:21 | * | OnO quit (Quit: Textual IRC Client: www.textualapp.com) |
20:30:14 | avsej | ah, right |
20:31:53 | Araq | ozra: oh yeah you might be right about hashIgnoreStyle |
20:40:38 | avsej | flaviu, is it possible to get list of matches in case like this? https://gist.github.com/avsej/d53237c6f4aa5c8ffb17#file-gistfile1-nim-L4 |
20:43:11 | GOOOBLES | is the nim gc smoking fast |
20:44:37 | flaviu | GOOOBLES: No, but that's not a problem for various reasons. |
20:45:00 | Araq | GOOOBLES: it's not too bad but more important is that's thread local and so you can replace it per thread. well, coming soon. |
20:47:06 | flaviu | avsej: https://gist.github.com/c648625c347e2f1ef592 |
20:49:30 | * | nande quit (Read error: Connection reset by peer) |
20:49:56 | flaviu | welp, https://github.com/Araq/Nim/pull/2816 |
20:53:59 | * | jubalh joined #nim |
20:58:31 | * | banister joined #nim |
20:58:44 | * | intra quit (Ping timeout: 265 seconds) |
20:59:59 | * | brson quit (Ping timeout: 258 seconds) |
21:02:46 | * | bluenote_ joined #nim |
21:02:46 | * | bluenote_ quit (Changing host) |
21:02:46 | * | bluenote_ joined #nim |
21:09:46 | flaviu | Hmm, is it possible to fix unittest so that `check(none(foo)...)` works? |
21:10:25 | flaviu | I can't find a way to tell if "foo" is a typedesc. |
21:10:54 | * | tdc quit (Quit: Leaving) |
21:11:33 | fowl | flaviu: typed{type} |
21:12:43 | bluenote_ | flaviu: while you are at it you could rename the suite "optionals" -> "options" as well |
21:13:25 | bluenote_ | oh, and include my propose `$` implementation :) |
21:14:15 | * | jubalh quit (Quit: goodnight) |
21:15:19 | flaviu | fowl: I'm not sure that helps me in the context of the unittest module. |
21:16:00 | flaviu | bluenote_: It's already been renamed, I'll send a PR for a `$` as soon as I finish up with what I'm currently working on. |
21:18:40 | bluenote_ | awesome |
21:18:53 | fowl | flaviu: I don't know what youre doing |
21:18:57 | bluenote_ | btw, I was referring to this occurrence of "optionals": https://github.com/Araq/Nim/blob/devel/lib/pure/options.nim#L121 |
21:19:44 | bluenote_ | isn't it possible to do: check none(int) == none(int) |
21:22:45 | flaviu | bluenote_: Nope, because of a bug in the unittest module. |
21:23:34 | flaviu | fowl: check in unittest looks at the call and inspects the parameters. It needs some way of finding out that a given parameter is a typedesc, so that it doesn't try to inspect it. |
21:24:20 | ozra | GOOOBLES: As partly mentioned: Each thread has its own gc, so in contrast to for instance golang, which freezes everything when gc'ing, nim threads keep on working, pausing only for they're own gc needs. |
21:24:20 | bluenote_ | oh, I see |
21:25:09 | fowl | flaviu: if it is a macro you can use gettype to see if its a typedesc |
21:25:16 | fowl | 1 sec I'll look at it |
21:25:20 | avsej | flaviu, why port comes before host? |
21:26:41 | BlaXpirit | flaviu, try to factor some code outside the check call |
21:27:12 | flaviu | avsej: Because the order of the keys and values in a table are undefined. |
21:28:31 | avsej | ok |
21:29:08 | bluenote_ | BlaXpirit: yes, he already has done that, it is just not satisfying I guess ;) |
21:30:29 | fowl | flaviu: change the condition in inspectargs to check exp.typekind for ntypedesc |
21:31:27 | fowl | Oh wait this comes from callsite so that won't work |
21:32:37 | * | vsajip left #nim (#nim) |
21:37:07 | * | boop is now known as boopisaway |
21:39:12 | * | wilmerwalton joined #nim |
21:39:46 | * | wilmerwalton quit (Client Quit) |
21:40:10 | * | solidsnack joined #nim |
21:43:35 | GOOOBLES | nim has ref counting it says, that should make it fast |
21:46:00 | GOOOBLES | there is alot of these new c++ alt langs |
21:46:11 | GOOOBLES | nim, rust, crystal, d etc |
21:46:22 | * | Demon_Fox joined #nim |
21:47:29 | * | boopisaway is now known as boop |
21:49:41 | * | solidsnack quit (Read error: Connection reset by peer) |
21:50:19 | * | bluenote_ quit (Ping timeout: 246 seconds) |
21:50:45 | * | filcuc quit (Quit: Konversation terminated!) |
21:54:13 | flaviu | GOOOBLES: ref counting doesn't mean it's fast. It's fast enough that I've never had trouble with it, but it doesn't compare to Java's GC. |
21:54:51 | GOOOBLES | well fast i mean no big pauses |
21:55:19 | * | dtscode wonders how hard it would be to get nim to target java bytecode... |
21:55:20 | flaviu | Ah, I see. Not throughput or allocation speed. |
21:55:59 | GOOOBLES | that is less important |
21:57:14 | Araq | flaviu: I'm pretty sure I can outperform java's GC, you only need to fill a large heap that stays in use |
21:57:59 | flaviu | There's no need to outperform Java's GC, the only reason it's necessary is because Java requires wasteful allocations. |
22:00:08 | * | BitPuffin|osx joined #nim |
22:02:43 | Araq | flaviu: btw there really is a big difference between "reference counting" and "deferred reference counting" |
22:05:45 | Jehan_ | Araq: Pretty much all of Java's GCs should be generational, so a large heap should matter relatively little. |
22:06:10 | GOOOBLES | ref counting is cooler |
22:06:19 | GOOOBLES | it kills the memory sooner |
22:06:38 | Araq | Jehan_: yeah I know, but there is the occasional "needs full marking" phase |
22:07:36 | GOOOBLES | swift does it too |
22:07:54 | Araq | but it might indeed be hard to construct these cases with today's GCs |
22:08:59 | * | vendethiel quit (Ping timeout: 258 seconds) |
22:11:45 | * | vendethiel joined #nim |
22:11:56 | Jehan_ | A full stop the world can also be avoided, just needs incremental collection. |
22:12:09 | Jehan_ | Obviously, the basic implementation is still only soft RT, not hard RT. |
22:13:12 | * | boop is now known as boopisaway |
22:14:45 | Araq | Jehan_: incremental collection only affects pauses, a full scan remains a full scan. when I mean "outperform" I mean "beat it on throughput" |
22:15:14 | Jehan_ | Ah, I see. |
22:15:23 | Araq | anyway, it would be an interesting experiment. |
22:15:42 | Jehan_ | Well, let's just add cycles to the mix and DRC is at a disadvantage again. |
22:15:57 | Araq | shhhhttt |
22:16:02 | Jehan_ | :) |
22:16:30 | * | ingsoc quit (Ping timeout: 272 seconds) |
22:17:03 | Jehan_ | Not that I think that it matters much. Both amortized performance and pause time can be pretty good these days. |
22:17:41 | Jehan_ | Biggest problem is with people who can't grasp that the world has moved past "stop the world". |
22:28:44 | reactormonk | avsej, be warned, there are a few tests that fail IIRC |
22:29:27 | * | pregressive quit (Read error: Connection reset by peer) |
22:39:18 | * | taesoo quit (Ping timeout: 272 seconds) |
22:43:00 | * | BlaXpirit quit (Quit: Quit Konversation) |
22:49:28 | * | brson joined #nim |
22:54:30 | * | vendethiel quit (Ping timeout: 272 seconds) |
22:56:18 | * | vikaton quit () |
22:58:12 | * | Siecje quit (Read error: Connection reset by peer) |
23:03:10 | * | vikaton joined #nim |
23:05:47 | * | jbomo joined #nim |
23:07:35 | flaviu | How should private modules in the stdlib be handled? |
23:10:50 | Araq | flaviu: these need generated docs too cause we generate links for them and google doesn't like 404s |
23:12:27 | def- | flaviu: you could export nothing and include them but I guess that's not what you want |
23:12:37 | flaviu | Araq: Ok, just a big disclaimer at the top that it's private and telling people not to touch them? |
23:13:43 | Araq | flaviu: yeah and put it in a private subdir |
23:13:53 | flaviu | Araq: Ok, sounds good. |
23:23:30 | flaviu | Can someone merge https://github.com/Araq/Nim/pull/2817? The nre PR is blocked on it. |
23:24:21 | flaviu | Well, it's only really blocked on c9616897f0e0d932c75b61ed96124d8cbac35076, but 3daef85d6ee73c7ef3c89c5ca0738698bcdbfbfa can't hurt anything. |
23:25:49 | * | Jehan_ quit (Quit: Leaving) |
23:27:04 | Araq | flaviu: done. |
23:27:21 | Araq | can't hurt if it fixes 2 bugs, right? |
23:27:29 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:27:59 | flaviu | Well, it doesn't actually fix them. |
23:28:04 | Araq | damn |
23:28:08 | flaviu | I just used that so they'd get closed. |
23:28:14 | Araq | that PR breaks windows-x64-builder |
23:28:18 | Araq | "Failed build basic nim binary" |
23:28:27 | Araq | http://buildbot.nim-lang.org/builders/windows-x64-builder/builds/428 |
23:28:58 | Araq | oh wait never mind |
23:29:00 | flaviu | Araq: Not my fault :P |
23:29:08 | Araq | that builder is failing for quite some time. yay. |
23:30:16 | Araq | hey, zahary is back. welcome back. |
23:34:03 | * | taesoo joined #nim |
23:40:02 | * | Jesin quit (Ping timeout: 246 seconds) |
23:47:55 | * | Jesin joined #nim |
23:48:59 | * | Trustable quit (Remote host closed the connection) |
23:52:52 | GOOOBLES | JENAH |
23:52:58 | GOOOBLES | noo |
23:55:20 | flaviu | BlaXpirit: PR for nre has been sent! https://github.com/Araq/Nim/pull/2818 |
23:57:22 | * | Kingsquee joined #nim |
23:57:53 | * | brson quit (Quit: leaving) |
23:58:22 | * | saml_ joined #nim |