00:15:37 | smitop | Why is this happening? https://usercontent.irccloud-cdn.com/file/guwrNmzK/image.png |
00:15:50 | * | narimiran quit (Ping timeout: 250 seconds) |
00:18:42 | smitop | What use does nimforum have for my physical location? |
00:22:04 | smitop | I've never seen that before |
00:25:23 | * | rnrwashere quit (Remote host closed the connection) |
00:26:17 | * | noeontheend quit (Ping timeout: 245 seconds) |
00:28:52 | * | rnrwashere joined #nim |
00:46:06 | * | rnrwashere quit (Remote host closed the connection) |
00:47:59 | * | rnrwashere joined #nim |
01:02:44 | * | rnrwashere quit (Remote host closed the connection) |
01:07:33 | * | rnrwashere joined #nim |
01:09:38 | * | rnrwashere quit (Remote host closed the connection) |
01:10:26 | * | zachk quit (Quit: night) |
01:10:36 | * | rnrwashere joined #nim |
01:33:20 | * | abm quit (Ping timeout: 246 seconds) |
01:42:38 | * | abm joined #nim |
01:54:12 | * | abm quit (Ping timeout: 250 seconds) |
01:58:10 | * | rnrwashere quit (Remote host closed the connection) |
02:04:39 | * | rnrwashere joined #nim |
02:09:29 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
02:12:28 | * | rnrwashere quit (Remote host closed the connection) |
02:18:38 | * | rnrwashere joined #nim |
02:37:53 | * | rnrwashere quit (Remote host closed the connection) |
02:38:11 | * | rnrwashere joined #nim |
02:42:57 | * | rnrwashere quit (Remote host closed the connection) |
02:46:01 | * | rnrwashere joined #nim |
02:49:20 | * | rnrwashere quit (Remote host closed the connection) |
02:59:46 | * | rnrwashere joined #nim |
03:02:33 | * | banc quit (Quit: Bye) |
03:11:03 | FromGitter | <deech> `fieldPairs` has the type signature `iterator fieldPairs*T: tuple|object (x: T): RootObj` and is used as `for name, value in fieldPairs(...): ...`. What is the type of `name` in this case? Is it some kind of symbol or it just coerced into a `string` by the iterator? |
03:16:42 | FromGitter | <Varriount> @deech It's an expression type |
03:18:25 | FromGitter | <deech> @Varriount Thanks! Where should I look for it in the compiler source? Looking at the def. of `RootObj` wasn't helpful. |
03:18:55 | FromGitter | <Varriount> Unfortunately I don't really know. Perhaps where the magic procedures are handled? |
03:25:16 | * | banc joined #nim |
03:33:55 | * | rnrwashere quit (Remote host closed the connection) |
03:58:02 | * | smitop quit (Quit: Connection closed for inactivity) |
04:04:31 | * | rnrwashere joined #nim |
04:12:23 | * | rnrwashere quit (Remote host closed the connection) |
04:13:35 | * | rnrwashere joined #nim |
04:22:36 | * | rnrwashere quit (Remote host closed the connection) |
04:30:29 | * | aguspiza quit (Ping timeout: 255 seconds) |
04:31:48 | * | rnrwashere joined #nim |
04:34:23 | * | rnrwashere quit (Remote host closed the connection) |
04:35:46 | * | rnrwashere joined #nim |
04:38:37 | * | rnrwashere quit (Remote host closed the connection) |
04:41:37 | * | nsf joined #nim |
04:53:35 | * | rnrwashere joined #nim |
05:00:39 | * | rnrwashere quit (Remote host closed the connection) |
05:11:14 | * | rnrwashere joined #nim |
05:12:17 | * | rnrwashere quit (Remote host closed the connection) |
05:14:06 | * | rnrwashere joined #nim |
05:27:20 | * | noeontheend joined #nim |
05:46:59 | * | noeontheend quit (Ping timeout: 255 seconds) |
05:49:44 | * | Marumoto joined #nim |
05:51:10 | * | rnrwashere quit (Remote host closed the connection) |
05:52:00 | * | Marumto quit (Ping timeout: 246 seconds) |
05:55:11 | * | rnrwashere joined #nim |
06:16:54 | * | dddddd quit (Remote host closed the connection) |
06:34:55 | * | nsf quit (Quit: WeeChat 2.3) |
06:43:47 | * | sDF_ joined #nim |
07:06:11 | * | sDF_ quit (Ping timeout: 256 seconds) |
07:23:42 | * | Marumoto quit (Ping timeout: 246 seconds) |
07:29:18 | * | rnrwashere quit () |
07:41:48 | * | narimiran joined #nim |
07:48:33 | * | nsf joined #nim |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:03:12 | * | salewski joined #nim |
08:03:22 | Zevv | ~ |
08:04:43 | * | gmpreussner joined #nim |
08:04:57 | salewski | narimiran, from https://nim-lang.org/documentation.html we now get the 0.19.9 github docs |
08:05:11 | narimiran | salewski: yes, on purpose, until 0.20 is out |
08:05:19 | salewski | like https://nim-lang.github.io/Nim/manual.html and https://nim-lang.github.io/Nim/lib.html |
08:05:37 | salewski | OK, fine for me. Bye. |
08:05:51 | * | salewski quit (Client Quit) |
08:32:17 | * | Arlenx joined #nim |
08:35:54 | * | neceve quit (Ping timeout: 250 seconds) |
08:36:15 | * | neceve joined #nim |
08:54:17 | * | lritter joined #nim |
08:56:17 | * | neceve quit (Ping timeout: 245 seconds) |
09:03:59 | * | neceve joined #nim |
09:05:16 | * | sealmove joined #nim |
09:09:48 | * | sealmove quit (Ping timeout: 268 seconds) |
09:11:51 | * | Vladar joined #nim |
09:18:57 | Araq | does anybody know when we introduced pragmas for enum fields? |
09:22:00 | Araq | ok, it was added in December... |
09:25:23 | Araq | yay 0.19.4 lacks it, I am free to change it |
09:27:28 | FromGitter | <matrixbot> `Juan Carlos` pragmas deserve vacations too :P |
09:29:58 | * | leorize joined #nim |
10:04:54 | * | nsf quit (Quit: WeeChat 2.3) |
10:25:59 | * | narimiran quit (Ping timeout: 244 seconds) |
10:27:10 | * | ng0 joined #nim |
10:36:12 | Araq | https://perception-point.io/resources/research/analysis-and-exploitation-of-a-linux-kernel-vulnerability/ |
10:36:49 | Araq | would my saturated sticky integer semantics have prevented this? the answer is: Yes. |
10:37:39 | Araq | we are building castles on quicksand with these terrible "wrap around integers". |
10:48:30 | Zevv | what would you propose then, with modern hardware still lacking proper saturated arithmetic? |
10:51:39 | dom96 | > <smitop> Why is this happening? https://usercontent.irccloud-cdn.com/file/guwrNmzK/image.png |
10:51:44 | dom96 | Now that is super strange. |
10:52:09 | dom96 | My best guess is it's one of your browser extensions asking for the location. The forum doesn't do that. |
11:04:15 | * | ng0 quit (Remote host closed the connection) |
11:05:18 | * | ng0 joined #nim |
11:07:06 | FromGitter | <kayabaNerve> I know Google is saying f-it, SPECTRE can't be solved in software, but now I'm questioning how many of these critical bugs could be solved, without 50% performance loss, if you built the OS around it. |
11:07:26 | FromGitter | <kayabaNerve> (around making sure these bugs can't be abused) |
11:09:59 | * | vlad1777d joined #nim |
11:13:34 | Araq | Zevv: emulate it in software until the hardware gets there. |
11:14:39 | FromGitter | <matrixbot> `Juan Carlos` Having AMD I scaped some of those, ARM just launched smaller (Nm) CPU too. |
11:15:57 | FromGitter | <matrixbot> `Juan Carlos` The stuff inside is smaller I mean, probably frees more room for more cores. |
11:20:54 | Araq | Zevv: in fact, we could embrace the FP math to give us +-Infinity values |
11:21:19 | Araq | I don't think atomicInc works on floats though :-/ |
11:25:28 | * | neceve quit (Ping timeout: 268 seconds) |
11:25:43 | * | neceve joined #nim |
11:27:54 | Araq | well a CAS loop can do it |
11:35:47 | Zevv | your Z3 question from yesterday changes of course with taking overflows in account |
11:36:15 | Zevv | http://paste.debian.net/1069918/. The answer from Z3 is that this does not hold when len(a) == #x7ffffffc |
11:42:32 | Araq | overflows trap in Nim though so it's still correct |
11:44:13 | * | neceve quit (Ping timeout: 245 seconds) |
11:44:23 | * | neceve joined #nim |
11:48:53 | * | stefanos82 joined #nim |
11:54:16 | Zevv | that makes sense. so, what would be next then, proving-wise? |
11:55:01 | Zevv | if you say "I can give you precondition this and that", where do those come from? |
12:14:44 | * | dddddd joined #nim |
12:16:25 | * | nsf joined #nim |
12:33:20 | * | neceve quit (Ping timeout: 255 seconds) |
12:34:29 | * | neceve joined #nim |
12:35:27 | * | seerix joined #nim |
12:50:09 | * | krux02 joined #nim |
12:52:55 | * | Vladar quit (Remote host closed the connection) |
12:59:12 | * | vlad1777d quit (Ping timeout: 245 seconds) |
13:05:56 | * | volkov joined #nim |
13:06:24 | Araq | Zevv: well they come from the Nim compiler, what it knows about Nim's semantics, our 'range' type |
13:06:33 | Araq | and about the control flow |
13:06:47 | Araq | and the compiler understands what 'countup' and 'countdown' mean |
13:21:08 | dom96 | does rand(0.0 .. 1.0) ever give 1.0? It should since HSlice is inclusive, right? |
13:25:52 | Araq | it's technically hard to do |
13:26:02 | Araq | so I don't think it can produce 1.0 |
13:26:14 | dom96 | I see. Fair enough. |
13:27:21 | Araq | better work with 1..100 and div by 100 to get a fraction |
13:28:42 | dom96 | I'm writing my own simpler RNG so I was actually wondering how to solve it |
13:28:47 | dom96 | but it's not that big of a problem |
13:33:15 | Zevv | ghehe, let u = (0x3FFu64 shl 52u64) or (x shr 12u64) |
13:35:36 | Araq | can we get a readLn for 0.20? |
13:36:26 | Araq | or something with a better name |
13:40:02 | * | volkov quit (Quit: volkov) |
13:40:19 | * | krux02 quit (Remote host closed the connection) |
13:49:43 | Zevv | like 'readline', but then native Nim? |
13:55:27 | Araq | with a \n at the end to be able to say "EOF" |
14:09:08 | FromGitter | <alehander42> Araq aren't countdown etc just stdlib |
14:10:11 | FromGitter | <alehander42> It's better if the compiler can understand the math effect of those functions purely based on their signature / something like that |
14:26:19 | * | vlad1777d joined #nim |
14:27:29 | FromGitter | <Varriount> Araq: why not just add an optional argument to readline? |
14:27:40 | * | narimiran joined #nim |
14:43:03 | Araq | alehander42: too hard so I special cased it |
14:44:41 | Araq | Varriount: bah, optional arguments everywhere, that's why |
14:45:41 | Araq | because the old version should be deprecated, otherwise we need the optional argument in the 'lines' iterator too, for "consistency" |
14:46:20 | Araq | and now that 'import io' becomes a thing, it's the right time to get the API right |
15:06:01 | * | nsf quit (Quit: WeeChat 2.3) |
15:08:18 | * | neceve quit (Remote host closed the connection) |
15:09:27 | * | nsf joined #nim |
15:16:33 | * | sealmove joined #nim |
15:20:10 | * | Trustable joined #nim |
15:40:05 | * | couven92 joined #nim |
15:42:37 | * | sealmove quit (Quit: WeeChat 2.4) |
16:15:33 | federico3 | how can i create a File object from an fd? |
16:24:37 | federico3 | aha: open(..) Creates a File from a filehandle with given mode. |
16:24:38 | * | Arlenx quit (Read error: Connection reset by peer) |
16:28:47 | * | smitop joined #nim |
17:09:12 | * | Tyresc joined #nim |
17:23:24 | FromGitter | <Varriount> Araq: Well, for API ideas, I would suggest looking at other languages (Go might be the first place to look) |
17:23:47 | * | ldlework stares. |
17:25:07 | * | FromGitter * Varriount stares |
17:39:16 | * | nsf quit (Quit: WeeChat 2.4) |
17:42:07 | FromGitter | <Varriount> Anyone know of a way to disable the standard sigsev fault handler? |
17:48:42 | * | vlad1777d quit (Remote host closed the connection) |
17:48:49 | Araq | -d:noSignalHandler |
17:49:31 | Araq | Varriount: I don't need API ideas really, all we need to do is to deprecate 'endOfFile' as it's the wrong idea for streams |
17:49:49 | * | vlad1777d joined #nim |
17:49:54 | Araq | and an old leftover from Nim's Pascal roots. |
17:52:47 | FromGitter | <Varriount> Araq: What do I do if I want to have Nim call a different C compiler ('afl-clang') but treat it the same as Clang? |
17:56:04 | * | a_chou joined #nim |
17:56:05 | * | a_chou quit (Remote host closed the connection) |
17:56:41 | * | a_chou joined #nim |
17:57:43 | * | a_chou quit (Client Quit) |
17:58:14 | * | a_chou joined #nim |
17:58:23 | * | a_chou quit (Client Quit) |
17:59:13 | * | a_chou joined #nim |
17:59:43 | * | Trustable quit (Remote host closed the connection) |
18:08:07 | * | Trustable joined #nim |
18:15:20 | Araq | you edit the nim.cfg to use some other 'clang.exe = ...' |
18:31:23 | * | a_chou quit (Ping timeout: 258 seconds) |
18:37:04 | * | smitop quit (Quit: Connection closed for inactivity) |
18:41:54 | * | a_chou joined #nim |
18:42:08 | * | Trustable quit (Remote host closed the connection) |
18:43:09 | * | Trustable joined #nim |
18:51:15 | * | a_chou quit (Quit: a_chou) |
18:55:07 | * | dddddd quit (Remote host closed the connection) |
19:04:42 | dom96 | Just profiled a game I'm working on (JS backend). Cycle collection can take 500ms+ in Firefox :( |
19:07:25 | dom96 | Huh, seems to be a Firefox bug actually. Restarting Firefox helped |
19:11:10 | * | aguspiza joined #nim |
19:12:16 | * | Trustable quit (Remote host closed the connection) |
19:18:44 | * | dddddd joined #nim |
19:25:24 | * | lritter quit (Ping timeout: 246 seconds) |
19:39:00 | * | abm joined #nim |
19:51:50 | * | vlad1777d quit (Ping timeout: 272 seconds) |
19:59:52 | * | Jesin quit (Quit: Leaving) |
20:02:22 | * | Jesin joined #nim |
20:21:55 | * | V-X joined #nim |
20:35:27 | V-X | Question regarding macro compilation order, I'm making an RPC library and I allow the server to mark certain functions as remote ex: `proc ping(self: client): string {.remote.} =` `remote` is a simple pass-through macro that adds the methods name, parameter types, etc. to a compile-time array that I later use to generate the code required to handle |
20:35:27 | V-X | incoming messages to invoke the related function and return the result. The issue I'm having is that the message handling code is inside a package called server, and is being generated before any of the actual functions (such as `ping`) are added to the array. Logically it makes sense that the package is compiled first, but I can't think of a way |
20:35:28 | V-X | to get around this issue. Any thoughts? |
20:39:20 | Araq | one way to do it is to emit the code explicitly with a call like emitRemotes() |
20:48:26 | V-X | What would emitRemotes() look like? |
21:01:28 | * | vlad1777d joined #nim |
21:12:02 | * | sealmove joined #nim |
21:12:04 | * | sealmove quit (Client Quit) |
21:12:25 | * | sealmove joined #nim |
21:16:03 | * | noeontheend joined #nim |
21:20:06 | * | rockcavera joined #nim |
21:28:23 | * | aguspiza quit (Ping timeout: 245 seconds) |
21:29:39 | * | narimiran quit (Remote host closed the connection) |
21:30:45 | * | sealmove quit (Ping timeout: 250 seconds) |
21:33:03 | * | sealmove joined #nim |
22:03:48 | V-X | @Araq I can't seem to find any references to how you would go about emitting the code like that. Would you mind explaining a bit more? |
23:08:01 | * | abm quit (Remote host closed the connection) |
23:08:26 | * | abm joined #nim |
23:15:05 | Araq | V-X: well it iterates over your .compileTime array/seq and produces the dispatcher that you need |
23:24:40 | V-X | That makes sense, how would I go about producing that dispatcher though? As I currently have it implemented when a message comes over the line it contains a string of the proc name and a string seq for the arguments, I then have a macro that uses the compileTime seq to generate switch cases that know how to deserialize the args into their respectiv |
23:24:41 | V-X | e types and invoke the proc. With that in mind, I'm unsure of how to do what you're suggesting with how I'm currently implementing it |
23:27:47 | * | sealmove quit (Quit: WeeChat 2.4) |
23:39:18 | * | abm quit (Ping timeout: 268 seconds) |
23:57:03 | FromGitter | <Varriount> dom96: Doesn't Nim use JavaScript's GC? |