| 00:02:24 | Varriount | dom96: proactor.nim(169, 8) Error: redefinition of 'ol' |
| 00:02:43 | dom96 | comment 169-172 |
| 00:02:59 | Varriount | Ah. |
| 00:03:12 | * | jbe joined #nimrod |
| 00:03:32 | Varriount | dom96: It's working for me. |
| 00:03:44 | dom96 | interesting. |
| 00:04:02 | Varriount | dom96: I'll paste you my code. Perhaps I did something |
| 00:04:04 | dom96 | Guess it's a 32bit only issue then |
| 00:04:17 | Varriount | dom96: Lemme check. I only ran it with 64 bit |
| 00:05:38 | Varriount | dom96: It's running with my 32 bit compiler. |
| 00:05:59 | Varriount | What version of windows are you running? |
| 00:06:04 | dom96 | 7 |
| 00:06:24 | Varriount | Hrm. I'm running 8 |
| 00:07:36 | dom96 | Might also be because we have different C compiler versions. |
| 00:07:36 | Varriount | dom96: Here's the diff - https://gist.github.com/Varriount/637e63ef29d2581ba828/revisions |
| 00:08:39 | dom96 | huh? You just added a space after the # ? |
| 00:09:00 | Varriount | No.. One moment |
| 00:09:34 | Varriount | Oh, silly me. I uncommented and recommented your block. |
| 00:12:26 | Varriount | dom96: Now - https://gist.github.com/Varriount/637e63ef29d2581ba828/revisions |
| 00:12:39 | Varriount | Is that right? That's the code that should crash? |
| 00:13:05 | dom96 | yes |
| 00:14:33 | Varriount | dom96: On 32-bit debug, I get a ISA at line 233 of proactor.nim, then line 59 of same. |
| 00:14:59 | dom96 | ISA? |
| 00:15:02 | Varriount | On 64 bit debug, I get an "Unhandled Error: The handle is invalid" |
| 00:15:07 | Varriount | Illegal Storage Access |
| 00:15:11 | dom96 | oh. |
| 00:15:16 | dom96 | yeah. |
| 00:15:39 | dom96 | Now figure out why :P |
| 00:15:57 | Varriount | I wonder. Should the signal handlers on windows print out the getLastError info? |
| 00:16:15 | * | jbe quit (Quit: Leaving) |
| 00:17:15 | Varriount | dom96: What's the difference between the two pieces of code? |
| 00:17:40 | dom96 | One allocates on the heap the other on the stack |
| 00:17:58 | Varriount | Od.. |
| 00:18:23 | Varriount | dom96: And the one that allocates on the heap is the one that crashes? |
| 00:18:24 | dom96 | Removing 'retFuture.complete(0)' also gets rid of the crash. |
| 00:18:41 | dom96 | no. The one that allocates on the stack is the one that crashes. |
| 00:18:47 | dom96 | alloc0() allocates on the heap |
| 00:20:58 | Varriount | dom96: I'm willing to be it's something to do with addresses, or types whose characteristics change depending on 32 or 64 bit. |
| 00:21:23 | Varriount | Why else would the errors on 32 be different from the one's on 64 bit? |
| 00:21:24 | dom96 | Yes, or one of the winapi functions is wrapped incorrectly. |
| 00:21:32 | Varriount | Which is quite possible. |
| 00:21:58 | dom96 | I tried using gdb but it gives no info at all. |
| 00:22:10 | dom96 | Try it, maybe you'll get something more. |
| 00:22:21 | Varriount | I'm gonna use process monitor. |
| 00:22:42 | Varriount | That might give me an idea of what the api functions are doing |
| 00:32:59 | Varriount | dom96: Are you sure the handle isn't being cut off? Remember that the handle type in winlean.nim had to be changed to fix sockets |
| 00:33:14 | Varriount | I don't know if the corresponding type got changed in windows.nim |
| 00:33:20 | dom96 | Varriount: I have no idea. |
| 00:53:40 | Araq | argh |
| 00:53:50 | Araq | where is github's commit history? |
| 00:53:58 | Araq | it used to exist ... |
| 00:54:26 | dom96 | https://github.com/Araq/Nimrod/commits/devel ? |
| 00:55:05 | Araq | thanks |
| 00:55:32 | Araq | no idea how to find that on the site, but the url is good enough to remember |
| 00:56:28 | dom96 | Click the "2,769 commits" below the repo description |
| 00:56:35 | * | ics joined #nimrod |
| 00:56:48 | Varriount | dom96: Do I wan |
| 00:57:01 | Varriount | Do I want to know why you've overriden wrapped functions? |
| 00:57:32 | dom96 | Which are you referring to? |
| 00:57:39 | Varriount | connectEx |
| 00:57:55 | dom96 | How did I override it? |
| 00:58:07 | Varriount | Or maybe I'm getting confused |
| 01:02:16 | Varriount | So Araq, what *should* tables be used for? What kind of situations? |
| 01:04:50 | Araq | when you need a growable set of keys? best example is a symbol table in a compiler |
| 01:05:50 | Araq | good night guys |
| 01:06:36 | Varriount | Good night. |
| 01:12:40 | * | io2 quit (Read error: Operation timed out) |
| 01:13:37 | Varriount | dom96: Ping |
| 01:13:49 | dom96 | yes? |
| 01:14:17 | Varriount | On 32 bit, sizeof(TOverlapped) is 20, wherease on 64 bit, it's 24 |
| 01:16:17 | dom96 | Check what it is in C |
| 01:23:26 | Varriount | It's a four byte difference, which probably means that something that should always be an int64 is being treated as an int. |
| 01:24:01 | Varriount | Also, I'm getting a wierd inconsistancy with compiling on 64 bit. It all of a sudden started working. :/ |
| 01:26:59 | dom96 | I'm quite certain that the size is correct on 32bit |
| 01:27:02 | Varriount | dom96: Your code is haunted. |
| 01:27:08 | dom96 | Because I checked it in C and it's 20 as well. |
| 01:28:37 | dom96 | Anyway, I should head to sleep. |
| 01:28:55 | dom96 | Godspeed :P |
| 01:29:00 | Varriount | dom96: Goodnight |
| 01:29:01 | dom96 | 'night |
| 01:29:20 | Varriount | In the morning, look to see if you have a local exorcist. |
| 01:29:50 | Varriount | Or possibly a druid. |
| 01:32:05 | Varriount | Ok, this is odd. It works on WIn64 in debug mode, but not in release mode. |
| 01:33:34 | Varriount | And on Win32, it works in release mode, but not in debug mode. What is going on here? |
| 01:34:47 | * | ics quit (Ping timeout: 260 seconds) |
| 01:37:13 | * | ics joined #nimrod |
| 01:52:17 | reactormonk | I assume there are sqlite3 bindings? |
| 01:52:25 | Varriount | reactormonk: Yes. |
| 01:52:45 | Varriount | reactormonk: Nimrod' |
| 01:52:54 | Varriount | Nimrod's tester uses sqlite3 to store data |
| 01:53:29 | reactormonk | so I assume I can find some sample code there |
| 01:53:56 | Varriount | Yes. |
| 02:14:53 | * | brson joined #nimrod |
| 02:16:00 | * | brson_ quit (Ping timeout: 252 seconds) |
| 03:04:54 | Varriount | Anyone here awake? |
| 03:05:42 | renesac | hi |
| 03:06:07 | Varriount | renesac: You have any experience with C or C++? |
| 03:06:33 | renesac | some experience with C, but not that much |
| 03:07:18 | Varriount | Have you ever heard of a program working on not working because of a no-op like operation, such as printing something? |
| 03:07:26 | Varriount | *working or not working |
| 03:07:49 | renesac | print isn't a no-op |
| 03:08:14 | Varriount | Well, no, not really, but it's close enough in the context I'm working in. |
| 03:08:21 | Varriount | Which is networking. |
| 03:08:25 | renesac | if you give a invalid adress for printing, it may hang |
| 03:08:32 | renesac | segfault, etc |
| 03:08:36 | Varriount | What about working? |
| 03:08:58 | renesac | I don't know |
| 03:09:13 | Varriount | I've added "if OSLastError().int != 0: echo(OSLastError())" to a piece of code dom96 is trying to get working |
| 03:09:29 | Varriount | and for some reason, it works. If I take the statement out, it fails |
| 03:10:10 | renesac | mistery |
| 03:11:28 | * | Varriount hides under the covers |
| 03:12:54 | fowl | quantum gremlins |
| 03:13:14 | Varriount | fowl: Do you have any idea what's going on? |
| 03:14:11 | Varriount | Actually, are any of you running Windows? |
| 03:14:26 | fowl | i have an xp vm |
| 03:14:33 | Varriount | fowl: That'll do. |
| 03:14:43 | fowl | brb smoking |
| 03:14:49 | Varriount | -_- |
| 03:15:17 | Varriount | I don't know what it says about me, If, when I ask for things, others get the urge to smoke. |
| 03:20:23 | renesac | oh, I remember a bug I had in C of allocating one too few characters for a string |
| 03:20:55 | renesac | but depending on what I done latter, the memory after that allocation would be filled by my program data, and then it would not be an out of bound acess |
| 03:21:26 | Varriount | Hm. So that likely means that one of the data types is too small or incorrent. Lovely. |
| 03:21:29 | fowl | Varriount, lol what do i do |
| 03:21:34 | Varriount | *incorrect |
| 03:21:36 | renesac | so a aparently no-op could make the code work, or maybe make it fail in an even stranger way |
| 03:21:58 | renesac | I lost a whole day on that bug |
| 03:22:06 | renesac | >.< |
| 03:25:50 | Varriount | fowl: Download these in your vm, extract, open up the command prompt, and run each |
| 03:25:51 | Varriount | https://drive.google.com/file/d/0B077nrrf63xtN1lZTDNtb3BuT2M/edit?usp=sharing |
| 03:27:28 | Varriount | renesac: Do you think whether something is allocated on the heap vs on the stack could also have similar effects? |
| 03:27:35 | renesac | actually, the problem is that the program overwrote the final '\0' of the string, because it allocated something else there |
| 03:27:47 | renesac | and then string functions would run out of bounds |
| 03:27:55 | renesac | like printf |
| 03:28:01 | fowl | Varriount, lol its old IE cant download it, i have to install chrome |
| 03:28:39 | Varriount | fowl: Should I email it to you then? |
| 03:28:53 | Varriount | Or should I have it sent by courier? |
| 03:28:54 | renesac | Varriount: I'm not sure what the difference would be, but on the stack things are probably allocated more densely |
| 03:29:10 | renesac | and when you go forwards on the pointer, you actually go backwards on the stack |
| 03:29:44 | renesac | ie: stack overflow |
| 03:29:57 | renesac | IIRC |
| 03:30:10 | fowl | Varriount, both of them segfault, notworking gives me a backtrace |
| 03:30:15 | renesac | no, |
| 03:30:32 | Varriount | fowl: What's the notworking backtrace give? |
| 03:30:47 | fowl | Varriount, backtrace is proactor.nim lines 234 (proactor) and 60 (poll) |
| 03:31:00 | renesac | *stack buffer overflow |
| 03:31:03 | Varriount | fowl: Thanks. |
| 03:31:27 | Varriount | renesac: Thank you as well. I feel a bit less crazy now. |
| 03:32:00 | Varriount | fowl: I'm actually surprised neither gives a dll missing error :P |
| 03:35:18 | fowl | sure |
| 03:36:17 | Varriount | Now to find out how to have gdb watch the memory contained by an echo procedure for access >_< |
| 04:13:55 | * | BitPuffin quit (Ping timeout: 260 seconds) |
| 04:28:39 | * | DAddYE joined #nimrod |
| 04:40:09 | * | shodan45_ joined #nimrod |
| 04:42:26 | * | shodan45 quit (Remote host closed the connection) |
| 04:42:44 | * | mietek_ joined #nimrod |
| 04:47:52 | * | mietek quit (Remote host closed the connection) |
| 05:08:38 | * | Icefoz quit (Ping timeout: 264 seconds) |
| 05:16:04 | * | psquid_ joined #nimrod |
| 05:17:42 | * | psquid quit (Ping timeout: 252 seconds) |
| 05:41:22 | * | aruniiird joined #nimrod |
| 05:48:17 | * | DAddYE quit (Remote host closed the connection) |
| 05:48:55 | * | DAddYE joined #nimrod |
| 05:53:37 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 06:00:44 | * | Demos joined #nimrod |
| 06:09:16 | * | xtagon quit (Ping timeout: 252 seconds) |
| 06:19:01 | Demos | yay! the visual studio project generator works. Right now I have it just going through the directory of the main file and adding all nim files. Is there a way to ask the compiler what files are needed for a given main file? |
| 06:19:31 | Varriount | Demos: Funny you should mention that |
| 06:19:44 | Varriount | Demos: Do you mean, files in nimcache? |
| 06:20:05 | Varriount | Or something like dependancy generation |
| 06:21:37 | Demos | I mean getting all the files in a directory (and subdirectories) that a file depends upon, that would probably be the contents of nimcache without anything from other libraries. |
| 06:21:48 | Demos | I guess I could use the listing of files I have now to generate that set |
| 06:21:59 | Demos | but I kinda like just using all the nimrod files |
| 06:23:02 | Varriount | Demos: Do you have any experience with the windows WSAIoctl api call? |
| 06:23:05 | Demos | hmmmmmm |
| 06:23:41 | Demos | not even a little bit |
| 06:23:45 | Varriount | Darn. |
| 06:24:24 | Varriount | I got a little closer in fixing the bug in iocp support for dom96's new asyncio stuff, but I need some outside experience. |
| 06:27:23 | Varriount | Huh. Demos, in the remarks section, read the paragraph starting with 'note' - http://msdn.microsoft.com/en-us/library/windows/desktop/ms737606(v=vs.85).aspx |
| 06:28:11 | * | shodan45_ quit (Quit: Konversation terminated!) |
| 06:28:49 | Demos | right, the stuff about the GUID? |
| 06:29:00 | Varriount | And about retrieving a pointer at runtime |
| 06:29:14 | Demos | yeah, that is something you need to sometimes do |
| 06:29:22 | Varriount | Isn't that thing kinda frowned upon by C programmers? |
| 06:30:01 | Demos | well it is needed sometimes. To allow for extending systems without changing headers that you don't own |
| 06:30:09 | Demos | it /is/ annoying |
| 06:30:13 | Varriount | Ah. |
| 06:30:26 | Demos | openGL works the same way |
| 06:30:37 | Demos | as do some of the DXGI debug functions |
| 06:31:18 | Demos | in the end that is how you have to do it.... not much choice |
| 06:31:42 | Varriount | Demos: This nice bug I'm dealing with disappears when I insert an echo statement into a particular place in the program. |
| 06:31:54 | Demos | oh shit |
| 06:31:59 | Demos | threading stuff? |
| 06:32:15 | Varriount | Nope. It's likely mismatched types, or data errors |
| 06:32:43 | Varriount | The bug also goes away when a certain data structure is allocated on the heap, instead of the stack. |
| 06:33:17 | Varriount | Demos: You know the pascal calling convention, right? |
| 06:33:33 | Varriount | Or at least, what calling conventions are? |
| 06:34:49 | Demos | I know about calling conventions. pascal is callee saved with a left-to-right param ordering right? |
| 06:35:04 | Varriount | Yeah |
| 06:35:33 | Varriount | Demos: Do you have any idea what would happen if a function was assigned an incorrect calling convention in nimrod? |
| 06:36:05 | Varriount | Would it's arguments be.. passed backwards, sorta? |
| 06:36:45 | Demos | well if the initial function was cdecl and the nimrod one is pascal you are fucked, since nobody is going to clean up registers |
| 06:37:08 | Varriount | Other way around |
| 06:38:10 | Varriount | I think a function that is being given to me as a procedure pointer is supposed to have a pascal calling convention, and it's being treated as if it has another calling convention |
| 06:39:23 | Demos | that would be really strange |
| 06:39:39 | Demos | if it is from the windows API it is probably stdcall |
| 06:39:41 | Varriount | Demos: Look at that page I linked |
| 06:40:02 | Varriount | The connectEx has a pascal calling convention, I think. |
| 06:40:13 | Demos | oh |
| 06:40:16 | Demos | that is really wierd |
| 06:40:24 | Varriount | Unless the "PASCAL" next to it is just a hallucination |
| 06:41:01 | Demos | open mswsock and follow the typedef turtles |
| 06:41:06 | Demos | *mswsock.h |
| 06:41:18 | Varriount | "typedef turtles" - I like it. |
| 06:42:32 | Varriount | Demos: I don't suppose there's a magical tool out there that can trace all the windows API calls a program makes, is there? |
| 06:42:53 | Demos | yeah, check what the actuall unmacroed version is. Well VS's "Go to definition" command does the trick |
| 06:43:06 | fowl | Varriount, callconv wouldnt be the problem unless you're dynamic linking, if you use header pragmas then the c compiler will handle the callconv right |
| 06:43:18 | Demos | and calling conventions can be part of function pointers, although if you are casting you are ofc screwed |
| 06:43:38 | Varriount | fowl, Demos: Casting is being done |
| 06:43:44 | Demos | right |
| 06:43:57 | Varriount | Look, here's the code - https://gist.github.com/dom96/74a81eb2001f1f9265c8 |
| 06:44:21 | fowl | "PASCAL is a calling convention also used heavily in 16-bit days. It has since been replaced by stdcall. |
| 06:44:21 | fowl | " |
| 06:44:24 | Varriount | Starts on line 132 |
| 06:44:27 | Demos | I was going to add that you should cast to LPFM_CONNECTEX |
| 06:45:12 | Demos | whatever that happens to be |
| 06:45:36 | Varriount | Demos: That's not in windows.nim, unfortunately. |
| 06:45:54 | Demos | right, trace the mofo through mswsock.h |
| 06:46:40 | * | DAddYE joined #nimrod |
| 06:48:48 | Demos | if I wanted to compile the stuff in nimcache myself what kind of linker options would I use? |
| 06:48:59 | Demos | any dependencies or is everything I need there? |
| 06:49:19 | Varriount | Demos: I would use whatever the nimrod command that spits out build scripts uses |
| 06:50:20 | Demos | I was not aware of such a command |
| 06:51:30 | * | DAddYE quit (Client Quit) |
| 06:51:41 | Varriount | Demos: genscript option, when compiling |
| 06:52:01 | Varriount | If you absolutely want to compile yourself, pair that with --nocompile |
| 06:52:21 | Varriount | Or was it --noLinking.. |
| 06:53:38 | Varriount | Demos: Got it - https://gist.github.com/Varriount/8629473 |
| 06:54:42 | Demos | pascal and far look to still be macros |
| 06:54:56 | Varriount | Yay, more searching |
| 06:56:19 | Demos | hm that files looks OK. Still wish I could just ask the compiler using an API. But CAAS needs to get fixed on a basic level first |
| 06:57:17 | * | DAddYE joined #nimrod |
| 06:57:17 | Varriount | Hm. Did VS used to be able to compile things for Macs? |
| 06:57:39 | Demos | I don't think so |
| 06:57:42 | Varriount | I just saw an "ifndef REQUIRESAPPLEPASCAL" |
| 06:57:44 | Demos | why? |
| 06:58:16 | Demos | I think the windows sockets code is derived from BSD sockets or something |
| 06:59:12 | Demos | anyway I need to go to sleep. |
| 07:03:40 | fowl | Varriount, help me figure out how to put these in synchronus orbit instead of boring socket stuff http://i3.minus.com/ibtA2hAWDmKF2D.png |
| 07:04:26 | Varriount | fowl: Open up a memory editor and set their positions and velocities so that they are in synchronous orbit. |
| 07:04:39 | Varriount | :3 |
| 07:05:25 | * | Demos quit (Ping timeout: 245 seconds) |
| 07:06:17 | Varriount | Anyway, I have to go to bed to. It's 2 in the morning here. |
| 07:07:15 | * | Demos joined #nimrod |
| 07:07:43 | fowl | gn |
| 07:14:12 | * | [1]Endy joined #nimrod |
| 07:14:25 | * | Demos quit (Read error: Connection reset by peer) |
| 07:16:39 | reactormonk | mafhmm, only getValue here with sqlite3 |
| 07:25:11 | * | [2]Endy joined #nimrod |
| 07:28:36 | * | [1]Endy quit (Ping timeout: 252 seconds) |
| 08:15:36 | * | brson quit (Quit: leaving) |
| 08:15:58 | * | brson joined #nimrod |
| 08:21:19 | * | fowl quit (Quit: Leaving) |
| 08:21:28 | * | fowl joined #nimrod |
| 08:54:09 | * | io2 joined #nimrod |
| 08:57:39 | * | aruniiird quit (Ping timeout: 260 seconds) |
| 09:05:21 | * | brson quit (Quit: leaving) |
| 09:12:18 | Araq | Varriount: 'if osLastError() != 0', however, is obviously a good idea anyway |
| 09:17:06 | Araq | also ... why don't you allocate 64 bytes of memory for the TOverlapped on the stack and call it a day? |
| 09:17:24 | Araq | var overlapped: array [64, Byte] |
| 09:17:44 | Araq | callIt(..., cast[POverlapped](addr overlapped), ...) |
| 09:21:15 | * | io2 quit (Ping timeout: 272 seconds) |
| 09:35:23 | * | io2 joined #nimrod |
| 09:35:30 | * | io2 quit (Changing host) |
| 09:35:30 | * | io2 joined #nimrod |
| 09:36:08 | reactormonk | Araq, any code somwhere that fetches stuff from sqlite in nimrod? |
| 09:37:21 | Araq | reactormonk: tests/testament/{htmlgen.nim, backend.nim} |
| 09:40:38 | reactormonk | Araq, only single values in backend. htmlgen only has strings - so sqlite only returns strings here? |
| 09:41:07 | Araq | yes |
| 09:41:25 | reactormonk | http://www.sqlite.org/c3ref/column_blob.html sqlite tells me otherwise |
| 09:43:47 | reactormonk | no way to get a row into its respective types? |
| 09:43:56 | * | bbodi joined #nimrod |
| 09:53:19 | * | DAddYE quit (Remote host closed the connection) |
| 10:04:43 | Araq | reactormonk: the db_*.nim modules are all string based |
| 10:04:53 | Araq | you have to use the native API to get more features |
| 10:05:08 | Araq | but sqlite internally stores everything as strings anyway |
| 10:05:11 | Araq | bbl |
| 10:07:21 | reactormonk | kk |
| 10:49:05 | * | [1]Endy joined #nimrod |
| 10:53:05 | * | [2]Endy quit (Ping timeout: 272 seconds) |
| 10:53:45 | * | DAddYE joined #nimrod |
| 10:59:09 | * | DAddYE quit (Ping timeout: 265 seconds) |
| 11:04:10 | * | DAddYE joined #nimrod |
| 11:05:57 | reactormonk | Araq, is it evil to execute sql commands at compile-type? |
| 11:06:12 | reactormonk | grabbing some static data. |
| 11:09:01 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 11:12:03 | EXetoC | that was discussed a couple of days ago. I was thinking of having a go at that some time |
| 11:15:36 | EXetoC | overkill or not, it's an interesting idea, and it'd demonstrate quite a few features |
| 11:16:51 | EXetoC | Araq: I asked you before if it would be possible. What were the compile-time restrictions that you mentioned? |
| 11:18:56 | EXetoC | you ran SDL code at compile-time, yeah? |
| 11:20:05 | reactormonk | EXetoC, you can run everything at compile-type |
| 11:22:19 | * | io2 quit (Ping timeout: 260 seconds) |
| 11:22:22 | * | io2_ joined #nimrod |
| 11:27:16 | EXetoC | He said something about limitations like I said, but perhaps it was only temporary |
| 11:40:09 | EXetoC | I'm getting case-related errors when bootstrapping with -d:useFFI |
| 11:43:57 | reactormonk | how can I convert a string to TSchemanticID when I have type TschematicID = distinct string ? |
| 11:46:14 | reactormonk | just cast it? |
| 11:46:30 | EXetoC | T("123") |
| 11:47:10 | EXetoC | I'd imagine that cast would work too |
| 11:48:25 | dom96 | Varriount: You don't need to send me memos, you can just PM me. I have a BNC. |
| 11:58:09 | reactormonk | initTable[schematicsID, seq[TReactionRow]]() # do I have to init the seq? |
| 11:59:43 | dom96 | yes |
| 11:59:49 | dom96 | For each schematicsID you have to. |
| 12:00:09 | reactormonk | if isNil(table[id]) ? |
| 12:00:51 | reactormonk | hasKey. |
| 12:02:50 | EXetoC | don't you have to specify an explicit value anyway when inserting? |
| 12:09:03 | reactormonk | EXetoC, nah, wanna dd |
| 12:09:21 | reactormonk | oh, gotta use mget, right? |
| 12:16:47 | EXetoC | I don't know what you mean, but use that if you want an exception to be raised with the absence of said key |
| 12:24:25 | * | q66 quit (Quit: Leaving) |
| 12:24:46 | * | q66 joined #nimrod |
| 12:24:46 | * | q66 quit (Changing host) |
| 12:24:46 | * | q66 joined #nimrod |
| 12:27:36 | EXetoC | what about lookup functions that returns a pointer to said value? for the rare cases when traversing the structure twice is considered expensive |
| 12:29:38 | * | silven quit (Quit: No Ping reply in 180 seconds.) |
| 12:30:06 | * | silven joined #nimrod |
| 12:31:14 | * | tdc joined #nimrod |
| 12:35:38 | reactormonk | EXetoC, make a ref time outta it? |
| 12:36:32 | * | silven quit (Quit: No Ping reply in 180 seconds.) |
| 12:36:56 | * | silven joined #nimrod |
| 12:37:09 | reactormonk | hmmm, not sure how I deal with subdirs... don't do it at all? |
| 12:39:00 | EXetoC | ok |
| 12:39:21 | reactormonk | ... as in subdirs for src/*.nim and data/*.sqlite |
| 12:43:28 | EXetoC | I think it should be relative to the dir that the compiler is invoked from |
| 12:44:15 | EXetoC | is this about the compile-time reflection? |
| 12:49:36 | bbodi | Hi all! This doeasnt work, why? for i, ch in runes(text): |
| 12:50:02 | bbodi | the compiler says: "Error: wrong number of variables" |
| 12:50:23 | bbodi | runes is the proc from unicde module |
| 12:51:00 | EXetoC | iterator you mean? The return type is TRune |
| 12:51:15 | EXetoC | an index var can't be implicitly added |
| 12:51:47 | EXetoC | so you'll have to declare an index var prior to entering the loop |
| 12:52:10 | bbodi | what is the different then in: for i, elem in [1, 2,3]: |
| 12:52:17 | bbodi | ? |
| 12:53:45 | dom96 | In that case the pairs iterator for that type is invoked implicitly. |
| 12:54:01 | dom96 | So it's actually: for i, elem in pairs([1,2,3]): |
| 12:54:28 | EXetoC | right. there's no such iterator for 'runes' currently |
| 12:54:42 | bbodi | got it, thanks a lot. It is sad that it doesn't work on oll kind of iterator |
| 12:55:38 | * | io2_ quit () |
| 12:56:08 | reactormonk | EXetoC, hmm |
| 12:57:03 | * | NimBot joined #nimrod |
| 12:57:19 | EXetoC | reactormonk: dunno |
| 12:57:59 | reactormonk | for db_sqlite, I have to reference the impure libs directly? |
| 12:58:18 | tdc | Does anyone know how I can see where a template is being instantiated? |
| 12:58:24 | EXetoC | bbodi: I've never considered doing that, but it should work. |
| 12:58:30 | reactormonk | tdc, blow it up, there's a stacktrace |
| 12:58:50 | tdc | I am getting a compile error... |
| 12:58:53 | tdc | lib/system.nim(698, 2) Error: value returned by statement has to be discarded |
| 12:58:54 | EXetoC | using 'runes' is slightly uglier |
| 12:59:17 | bbodi | Yeah its work, bit isn't there any simpler way? |
| 12:59:22 | * | aftershave quit (Quit: Computer has gone to sleep.) |
| 12:59:40 | tdc | This is the != template, but I don't know at which line in my module causes it |
| 13:02:04 | EXetoC | tdc: the absence of instantiation info is a bug |
| 13:02:12 | EXetoC | usually it's provided |
| 13:03:29 | EXetoC | bbodi: no. Usually when I work with unicode I need a sequence of runes, but I suppose "proc rune(string): TRune" could be added |
| 13:04:03 | bbodi | ExetoC: thanks |
| 13:04:36 | EXetoC | but runeAt is fine imo |
| 13:07:51 | tdc | --verbosity:3 let's me narrow it down to the proc; which is close enough |
| 13:08:46 | * | easy_muffin joined #nimrod |
| 13:10:01 | reactormonk | shouldn't nimrod read the *.nimrod.cfg in the current dir? |
| 13:13:14 | EXetoC | reactormonk: nimrod.cfg if no babel file is present, and name.nimrod.cfg otherwise |
| 13:14:28 | EXetoC | but there's no notion of a config file for libs |
| 13:14:57 | * | easy_muffin quit (Ping timeout: 272 seconds) |
| 13:15:47 | reactormonk | babel sounds like lib to me |
| 13:17:20 | EXetoC | well, not when using a lib, but when installing it |
| 13:17:23 | EXetoC | reactormonk: anything, really |
| 13:17:43 | reactormonk | hm |
| 13:18:00 | reactormonk | -p:$nimrod/lib/impure |
| 13:18:13 | reactormonk | how come that isn't accepted? |
| 13:18:54 | EXetoC | as an arg or in a cfg? |
| 13:19:00 | reactormonk | in the cfg |
| 13:19:31 | EXetoC | see nimrod.cfg. I don't know if the short names can be used, but the syntax is a little different either way |
| 13:20:00 | EXetoC | that should be /etc/nimrod.cfg in linux. here's an example: path="$lib/core |
| 13:20:05 | EXetoC | " |
| 13:20:44 | reactormonk | impure is in there... but it still doesn't find planetary_interaction.nim(1, 7) Error: cannot open 'db_sqlite3' |
| 13:20:48 | EXetoC | dmc.path = r"$nimrod\dist\dm\bin" |
| 13:21:19 | EXetoC | reactormonk: db_sqlite? |
| 13:21:59 | EXetoC | yep, minor typo |
| 13:22:52 | reactormonk | :-/ |
| 13:25:56 | * | io2 joined #nimrod |
| 13:29:57 | reactormonk | how do I convert a number in a string to an int? |
| 13:30:10 | reactormonk | strutils. |
| 13:32:15 | reactormonk | planetary_interaction.nim(35, 16) Error: type mismatch: got (TTypeID, int) |
| 13:32:22 | reactormonk | but not what it was expecting :-/ |
| 13:32:31 | reactormonk | TItem = object of TObject |
| 13:32:33 | reactormonk | typeID: TTypeID |
| 13:32:35 | reactormonk | amount: int |
| 13:32:37 | reactormonk | ^ trying to create one of those |
| 13:32:37 | dom96 | parseInt |
| 13:34:51 | EXetoC | reactormonk: TItem(typeID: x, amount: y)? consider encapsulating it in a proc called initItem |
| 13:35:52 | reactormonk | proc reactions(): TTable[TTypeID, TReaction] = |
| 13:35:54 | reactormonk | result = initTable() |
| 13:35:57 | reactormonk | ^ aww, can't infer A ehre |
| 13:37:33 | EXetoC | nope, not possible |
| 13:42:09 | EXetoC | there's B too |
| 13:43:28 | reactormonk | so distinct string doesn't add the hash function? borrow it is? |
| 13:45:19 | EXetoC | yes when you don't want to resort to x.string |
| 13:48:36 | reactormonk | I wish there was a 'borrow everything' |
| 13:51:17 | dom96 | There is, just remove the 'distinct' |
| 13:53:08 | EXetoC | :) |
| 13:54:56 | EXetoC | define a converter if you only want to encapsulate the construction |
| 13:55:14 | EXetoC | I think |
| 13:58:16 | * | BitPuffin joined #nimrod |
| 14:00:58 | * | aruniiird joined #nimrod |
| 14:02:47 | reactormonk | dom96, probably |
| 14:04:49 | reactormonk | I have to iterate over 3 elements and maybe do some stuff, and I need to do it all in all combinations possible, aka [true, false, true] |
| 14:10:45 | reactormonk | I did it in ruby by generating an array of all combinations of true/false with 3 elements and zipping that into the iteration. How do I do that in nimrod? |
| 14:11:21 | reactormonk | just 0 to 7 and go bitops? |
| 14:15:10 | reactormonk | any with_index iterator somewhere? Or how do I iterate over a seq with the index? good old seq.len? |
| 14:17:15 | EXetoC | there's 'pairs' which can be invoked implicitly: for i, x in @[1, 2, 3] |
| 14:18:14 | * | darkf quit (Quit: Leaving) |
| 14:18:39 | EXetoC | 'items' is implicitly invoked when only a single loop var is specified |
| 14:19:03 | EXetoC | http://build.nimrod-lang.org/docs/manual.html#implict-items-pairs-invocations |
| 14:37:16 | BitPuffin | It feels like it might be easier to interface with objc in nimrod than c++ |
| 14:37:26 | BitPuffin | because I don't believe obj-c has protected |
| 14:37:37 | BitPuffin | and if it does I don't ever see it being used |
| 14:37:39 | dom96 | hey BitPuffin, what's up? |
| 14:38:25 | BitPuffin | dom96: coding obj-c |
| 14:38:36 | BitPuffin | dom96: you? :D |
| 14:38:44 | dom96 | BitPuffin: coding nimrod |
| 14:38:52 | BitPuffin | dom96: I envy you |
| 14:40:27 | EXetoC | dom96: do you know the yearly fees for nimrod.org and picheta.me? I'm trying to compare registrars |
| 14:43:22 | dom96 | picheta.me cost me £5.45/year on namecheap IIRC |
| 14:43:44 | dom96 | .org seems to cost £6.95/year |
| 14:45:37 | EXetoC | thanks |
| 14:48:17 | BitPuffin | EXetoC: however I recommend hover over namecheap |
| 14:48:21 | BitPuffin | I have domains at both |
| 14:48:46 | BitPuffin | EXetoC: I can recruit you |
| 14:50:05 | BitPuffin | https://hover.com/wjj0lfMd |
| 14:51:07 | dom96 | hrm, hover does look nice. |
| 14:51:31 | BitPuffin | they are more expensive, but you get what you pay for |
| 14:51:59 | BitPuffin | and honestly considering how cheap domains are anyway it doesn't matter that much |
| 14:52:10 | BitPuffin | so it's more important with great service imo |
| 14:53:31 | BitPuffin | I'll probably move my namecheap domain over to hover |
| 14:53:44 | dom96 | Araq: It seems doc2 does not like methods. |
| 14:58:21 | EXetoC | BitPuffin: still pretty cheap compared to some alternatives. |
| 15:07:18 | BitPuffin | EXetoC: yep |
| 15:35:27 | * | Icefoz joined #nimrod |
| 15:39:22 | * | aftershave joined #nimrod |
| 15:42:42 | * | aftersha_ joined #nimrod |
| 15:45:14 | * | ddl_smurf quit (Quit: ddl_smurf) |
| 15:48:12 | * | brson joined #nimrod |
| 15:50:09 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
| 15:51:00 | EXetoC | I've registered an internet. I think I should use it for something |
| 15:51:24 | EXetoC | (hover) |
| 15:51:33 | EXetoC | BitPuffin: nim-glfw works now? |
| 15:58:47 | BitPuffin | EXetoC: did you use my link? :D |
| 15:58:57 | BitPuffin | EXetoC: I believe it does |
| 15:59:07 | BitPuffin | can't remembaaa |
| 15:59:10 | BitPuffin | but I think so |
| 15:59:21 | EXetoC | BitPuffin: yeah thanks |
| 15:59:28 | EXetoC | ok |
| 15:59:45 | BitPuffin | EXetoC: thank YOU :D |
| 15:59:58 | BitPuffin | now my renewal will cost me 2 dollars less xD |
| 16:00:09 | BitPuffin | such rich |
| 16:00:11 | BitPuffin | much saving |
| 16:00:13 | BitPuffin | wow |
| 16:00:17 | BitPuffin | very domain |
| 16:00:36 | EXetoC | ooh. amazing |
| 16:01:57 | EXetoC | I hope it's a linear rebate system, so that you can reach $0 |
| 16:02:14 | BitPuffin | yeah you get credits |
| 16:02:24 | BitPuffin | so if I have like 100 dollars in credits |
| 16:02:30 | BitPuffin | it won't cost me anything for a while |
| 16:02:42 | BitPuffin | EXetoC: where are you gonna host your internetz? |
| 16:03:04 | BitPuffin | I think I'm gonna be cray cray and run an arch server on digitalocean |
| 16:03:09 | EXetoC | oh. hey, should send that link to the whole internets |
| 16:03:25 | EXetoC | BitPuffin: locally |
| 16:03:34 | BitPuffin | EXetoC: for realz dog? |
| 16:06:10 | EXetoC | yes. it should be good enough for ~10 requests a month |
| 16:06:46 | BitPuffin | lol |
| 16:06:50 | BitPuffin | :) |
| 16:07:01 | BitPuffin | do you have a dedicated box though? |
| 16:10:48 | * | psquid_ is now known as psquid |
| 16:14:49 | zielmicha-cloud_ | Does devel branch fails to bootstrap for everyone or just for me? |
| 16:14:51 | zielmicha-cloud_ | compiler/types.nim(454, 33) Error: ')' expected |
| 16:15:12 | zielmicha-cloud_ | git blame -> 0348692f compiler/types.nim (Zahary Karadjov 2014-01-24 17:02:27 |
| 16:15:31 | BitPuffin | freaking zahary ;) |
| 16:15:31 | dom96 | I just bootstrapped it successfully. |
| 16:15:49 | EXetoC | BitPuffin: yes. I don't know if I'll be using it |
| 16:17:27 | BitPuffin | EXetoC: I see. Well it might be convenient to use some cloud server just to not have to deal with power outages and stuff like that |
| 16:17:30 | BitPuffin | ugh |
| 16:17:33 | BitPuffin | "cloud" |
| 16:17:39 | BitPuffin | vps* |
| 16:21:03 | EXetoC | downtimes are rare, and I'm cheap |
| 16:21:32 | BitPuffin | get a cloudatcost server then |
| 16:21:36 | BitPuffin | I hear they are shit though |
| 16:21:43 | BitPuffin | but probably better than your house :D |
| 16:27:03 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
| 16:31:41 | * | EXetoC joined #nimrod |
| 16:32:44 | renesac | how I can get vi to start in insert mode only when called by 'git commit'? |
| 16:36:23 | EXetoC | renesac: untested: git config --global core.editor 'vi -c startinsert' |
| 16:36:59 | renesac | yay |
| 16:37:00 | renesac | it works |
| 16:37:06 | EXetoC | neat |
| 16:37:06 | renesac | thanks |
| 16:38:06 | renesac | it was getting in my nerves forgetting to type 'i' every time |
| 16:38:13 | BitPuffin | renesac: why don't you use vim instead? |
| 16:38:35 | renesac | vi starts vim |
| 16:38:39 | renesac | vi is shorter to type |
| 16:38:40 | renesac | :P |
| 16:44:05 | EXetoC | BitPuffin: you don't have a shortcut? think about how much time you're wasting |
| 16:49:35 | * | BitPuffin quit (Ping timeout: 245 seconds) |
| 16:49:59 | * | BitPuffin joined #nimrod |
| 16:55:11 | NimBot | nimrod-code/nimbuild master ef542f2 Dominik Picheta [+12 ±0 -12]: Cleanup. Fixed select issue. Added dummyhub and stop cmd for builder. |
| 17:03:20 | BitPuffin | dom96: add a link to the documentation page on build.nimrod-lang.org |
| 17:04:04 | dom96 | There already is a link? |
| 17:04:19 | dom96 | see that big green documentation button? |
| 17:06:40 | NimBot | nimrod-code/nimbuild master 136eff1 Dominik Picheta [+0 ±2 -0]: Fix some deprecation warnings. |
| 17:07:51 | * | BitPuffin quit (Ping timeout: 252 seconds) |
| 17:18:09 | * | Demos joined #nimrod |
| 17:29:42 | * | Varriount|Mobile joined #nimrod |
| 17:32:16 | Varriount|Mobile | dom96: Made any progress on that iocp bug? |
| 17:33:42 | * | BitPuffin joined #nimrod |
| 17:35:08 | dom96 | Varriount|Mobile: Nope, been doing other stuff |
| 17:35:27 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
| 17:35:37 | Varriount|Mobile | Did you get my memos? |
| 17:36:05 | dom96 | yes |
| 17:36:12 | dom96 | You don't need to send me memos |
| 17:36:15 | dom96 | You can just PM me |
| 17:36:27 | dom96 | or you can just tell me here |
| 17:37:09 | BitPuffin | how do I send memo? |
| 17:37:33 | renesac | I want to remove some package installed by babel |
| 17:37:39 | renesac | how I do it? |
| 17:37:51 | dom96 | renesac: Remove the directory in ~/.babel/pkgs |
| 17:37:54 | renesac | just delete the related directories? |
| 17:38:00 | renesac | and the binary, right? |
| 17:40:25 | dom96 | yes |
| 17:40:36 | * | z_elmicha_ quit (Read error: Connection reset by peer) |
| 17:40:36 | * | z_elmich__ quit (Read error: Connection reset by peer) |
| 17:40:36 | * | z_elmic___ quit (Read error: Connection reset by peer) |
| 17:40:36 | * | zielmicha1 quit (Read error: Connection reset by peer) |
| 17:40:36 | * | z_elmicha1 quit (Read error: Connection reset by peer) |
| 17:46:31 | Varriount|Mobile | BitPuffin: Use memoserv |
| 17:48:02 | BitPuffin | Varriount|Mobile: I did |
| 17:49:45 | renesac | strange, aporia needed libgtksourceview2.0 and apt-get wouldn't install it, maybe because I have the 3.0 version, but synaptic installed it easily w/o complaining |
| 17:50:47 | dom96 | You should try aptitude instead of apt-get next time |
| 17:51:28 | renesac | yeah... |
| 17:52:02 | renesac | one thing babel don't do is registering the program in the main menu (usefull for GUI programs) |
| 17:56:17 | BitPuffin | dom96: did you get my memo? |
| 17:56:37 | dom96 | I don't think that's really babel's responsibility. |
| 17:56:43 | dom96 | BitPuffin: yes |
| 17:56:52 | BitPuffin | dom96: did you like it? |
| 17:57:12 | dom96 | BitPuffin: no |
| 17:58:24 | BitPuffin | dom96: </3 |
| 17:58:32 | BitPuffin | what an un-bro thing to do |
| 18:03:38 | Demos | renesac, another thing it does not do in uninstall packages. Babel does the job... and not that much more |
| 18:04:57 | renesac | yeah, I just asked about this |
| 18:04:58 | * | aruniiird quit (Ping timeout: 265 seconds) |
| 18:05:06 | renesac | aporia don't have any icon right? |
| 18:07:19 | dom96 | right |
| 18:20:55 | * | brson quit (Quit: leaving) |
| 18:25:01 | * | aftershave quit (Quit: Computer has gone to sleep.) |
| 18:25:37 | Varriount|Mobile | ooh, this looks interesting -> https://medium.com/p/3a6db2743a1e/ |
| 18:26:59 | BitPuffin | dom96: do you know when the dobbs article comes out? |
| 18:27:13 | dom96 | nope. |
| 18:27:21 | dom96 | Should be sometime in the next month |
| 18:27:33 | dom96 | Don't know the exact date though |
| 18:27:42 | dom96 | Neither does Araq I don't think |
| 18:29:23 | BitPuffin | oh I thought it was for january |
| 18:29:30 | BitPuffin | Varriount|Mobile: waaaawawawawawa we need that for nimrod |
| 18:29:46 | * | aftershave joined #nimrod |
| 18:29:59 | BitPuffin | implement it for vim |
| 18:29:59 | BitPuffin | nao |
| 18:30:59 | dom96 | I don't think that would really help. There would be too many colors to remember, it would end up being extremely distracting. |
| 18:32:13 | BitPuffin | nope |
| 18:44:59 | Araq | hi BitPuffin |
| 18:45:25 | * | BitPuffin quit (Ping timeout: 248 seconds) |
| 18:52:48 | Varriount|Mobile | Hi Araq |
| 18:53:29 | Araq | ho ho ho |
| 18:54:17 | Varriount|Mobile | I stayed up till two in the morning trying to find out where the bug in dom96 iocp code is |
| 18:54:41 | Araq | that's the spriit |
| 18:54:48 | Araq | any conclusions? |
| 18:55:14 | Varriount|Mobile | So far, I figured out that the socket isn't being bound to an address on 64 bit, which is a separate bug |
| 18:56:32 | * | EXetoC joined #nimrod |
| 18:56:38 | Varriount|Mobile | And that there must be some data size discrepancy somewhere, as the problem goes away on 64 bit if I insert an echo stmt on a certain line |
| 18:57:00 | Araq | well I told you what to do :P |
| 18:57:02 | Araq | check the logs |
| 18:57:15 | Varriount|Mobile | Huh? |
| 18:57:35 | Varriount|Mobile | I'm on my phone. I don't have logs |
| 18:58:13 | Araq | Varriount: 'if osLastError() != 0', however, is obviously a good idea anyway |
| 18:58:25 | Araq | also ... why don't you allocate 64 bytes of memory for the TOverlapped on the stack and call it a day? |
| 18:58:39 | Araq | var overlapped: array [64, Byte] |
| 18:58:49 | Araq | callIt(..., cast[POverlapped](addr overlapped), ...) |
| 18:58:55 | Varriount|Mobile | Because that is likely only a temp fix |
| 18:59:37 | Varriount|Mobile | and works for the same reason adding an echo stmt works |
| 19:00:05 | Araq | well if TOverlapped is wrong, that's the reason |
| 19:00:30 | Araq | but surely you can also simply add dummy fields to TOverlapped in windows.nim |
| 19:12:23 | EXetoC | dom96: how are you associating the domain name with your IP address? |
| 19:25:39 | * | BitPuffin joined #nimrod |
| 19:27:07 | Varriount | dom96: Ping |
| 19:29:41 | * | bbodi quit (Ping timeout: 248 seconds) |
| 19:29:47 | BitPuffin | It's also funny in nimrod that we more or less have the categories feature that obj-c programmers brag about without even advertising it haha |
| 19:31:15 | Varriount | Araq: Thanks for your advice. It led me to a discrepency in the OVERLAPPED structure in windows.nim |
| 19:31:31 | Varriount | DWORD's were being used instead of ULONG_PTR's |
| 19:31:56 | BitPuffin | oh you said hi Araq. Didn't notice because I timed out |
| 19:31:59 | BitPuffin | hey! :D |
| 19:32:08 | Araq | bbl |
| 19:32:59 | * | tdc quit (Ping timeout: 240 seconds) |
| 19:37:37 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
| 19:38:55 | * | EXetoC joined #nimrod |
| 19:41:26 | * | EXetoC quit (Client Quit) |
| 19:42:08 | dom96 | Araq: I could also simply allocate on the heap, that fixes the bug too. |
| 19:42:27 | dom96 | Araq: I could have done that earlier before we figured out that one of the functions was wrapped incorrectly. |
| 19:42:45 | dom96 | Araq: So Varriount is right, doing it will only be a temporary fix. |
| 19:42:54 | dom96 | And then 6 months later we will get another nice corruption for Nimbuild |
| 19:43:00 | BitPuffin | woa you guys are gonna do "it" |
| 19:43:01 | BitPuffin | ? |
| 19:43:07 | dom96 | Varriount: pong |
| 19:43:40 | dom96 | Varriount: I'm pretty sure DWORD and ULONG_PTR ends up being the same size anyway |
| 19:43:54 | dom96 | BitPuffin: ? |
| 19:43:54 | Varriount | dom96: Nope |
| 19:44:26 | * | tdc joined #nimrod |
| 19:44:33 | Varriount | dword is always 32 bits. ULONG_PTR is a native ptr (32 Or 64 bits) to a unsigned long (32 bits, i think) |
| 19:44:59 | Varriount | Changing DWORD to ULONG_PTR in the overlapped structure fixed the bug on win64 |
| 19:45:15 | Varriount | Now I get the same error on both 32 and 64 bit |
| 19:45:59 | BitPuffin | dom96: I'm not sure if doing it will solve any programming related issues |
| 19:46:06 | dom96 | ahh, well at least you fixed something heh |
| 19:46:10 | BitPuffin | and it could complicate your guys' relationship |
| 19:46:14 | Varriount | BitPuffin: Only if we do it with you. |
| 19:46:25 | BitPuffin | Varriount: waoooooo |
| 19:46:35 | dom96 | I think a threesome could help us solve many programming issues. |
| 19:46:36 | BitPuffin | I must say I disagree |
| 19:46:45 | BitPuffin | It would only cause more complications |
| 19:47:24 | * | EXetoC joined #nimrod |
| 19:47:45 | dom96 | EXetoC: You add an A record or something for your IP |
| 19:47:49 | * | dom96 can't remember exactly |
| 19:47:53 | * | dom96 points to google.com |
| 19:48:29 | * | io2 quit (Ping timeout: 240 seconds) |
| 19:48:34 | BitPuffin | I'm gonna make sure that google.com redirects to my website in the future |
| 19:48:42 | BitPuffin | man would THAT be good advertising |
| 19:48:59 | * | io2 joined #nimrod |
| 19:49:01 | * | io2 quit (Client Quit) |
| 19:50:09 | dom96 | Just gotta hack the nameservers bro |
| 19:50:26 | Varriount | dom96: Whats really odd is that proactor.nim works in release mode |
| 19:50:47 | dom96 | Varriount: Hrm. I had that happen before. |
| 19:50:47 | * | io2 joined #nimrod |
| 19:50:54 | dom96 | It was a calling convention issue IIRC |
| 19:51:45 | Varriount | dom96: So.. maybe the calling convention for one of the procedures is off? |
| 19:51:58 | dom96 | maybe |
| 19:52:41 | Varriount | What was wrong with that past issue? |
| 19:53:16 | dom96 | cdecl when it should have been stdcall |
| 19:53:40 | * | Icefoz quit (Quit: Lost terminal) |
| 19:55:45 | EXetoC | dom96: thanks. I messed about with it again and now it's working |
| 19:56:09 | EXetoC | I did google quite a lot but the information was really sparse |
| 19:56:16 | dom96 | Varriount: or actually it could have been the other way around |
| 19:56:26 | * | vbtt joined #nimrod |
| 19:56:53 | EXetoC | hm, it only works on my phone. www.exetoc.com |
| 19:57:09 | dom96 | Your browser probably cached it. |
| 19:57:55 | EXetoC | I don't know about that. Will confirm |
| 19:57:56 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
| 19:58:01 | dom96 | Make sure to point * to your IP |
| 19:58:03 | dom96 | not just www |
| 19:59:21 | * | Mat3 joined #nimrod |
| 19:59:24 | Mat3 | hello |
| 19:59:38 | Varriount | Hey dom96, here's a neat trick for cases when you're trying to figure out why things work with two different methods - wrap the blocks in a 'when true.. else:' pattern |
| 20:00:16 | dom96 | So basically comment out code? |
| 20:00:53 | Varriount | Yeah, but instead of comments, when..else blocks |
| 20:00:57 | dom96 | Yes, that's what I always try. But the problem with this is that like you say single statements affect it, and at random locations so it seems rather random. |
| 20:01:26 | Mat3 | hmm, interesting problem |
| 20:01:26 | * | EXetoC joined #nimrod |
| 20:01:35 | Mat3 | hi EXetoC |
| 20:01:37 | Varriount | dom96: I'm using the pattern on the two code sections. the one where you allocate on the stack, vs the heap |
| 20:01:43 | EXetoC | Mat3: hello |
| 20:02:42 | Araq | BitPuffin: "It's also funny in nimrod that we more or less have the categories feature that obj-c programmers brag about without even advertising it haha" |
| 20:02:55 | Araq | what's this "categoires" feature of obj-c? |
| 20:03:10 | * | mietek_ is now known as mietek |
| 20:03:57 | Mat3 | hi Araq |
| 20:05:04 | Mat3 | I don't know, possible some kind of metaphorical methapher |
| 20:05:54 | EXetoC | dom96: I might have had to remove the default records |
| 20:10:19 | Mat3 | ciao |
| 20:10:29 | * | Mat3 quit (Quit: Verlassend) |
| 20:14:05 | BitPuffin | Araq: where you can add methods on to an existing class with the restriction that you can't add additional storage |
| 20:14:52 | EXetoC | BitPuffin: does my internet work? http://exetoc.com/ |
| 20:14:56 | BitPuffin | Araq: so for example some object type in the standard library. I could just add a method in my own file in order to extend it without subclassing |
| 20:15:05 | BitPuffin | 456 |
| 20:15:09 | EXetoC | ktnx |
| 20:15:18 | BitPuffin | EXetoC: great website, keep it |
| 20:16:21 | EXetoC | yup. it just lacks a little content |
| 20:16:46 | BitPuffin | I think the content was the best part |
| 20:18:46 | EXetoC | that means you know which compression algorithm I'm using |
| 20:21:20 | reactormonk | https://gist.github.com/reactormonk/764d0493b64e21d8f296 now that's a lot of error messages |
| 20:26:06 | Araq | reactormonk: I guess we really shouldn't even provide "nimrod i" |
| 20:26:45 | Varriount | Hey Araq, what could cause a program to have a nill access error in non-release mode, but not in in release mode? |
| 20:27:23 | * | [1]Endy quit (Ping timeout: 260 seconds) |
| 20:28:50 | reactormonk | Araq, sad, I like it |
| 20:29:10 | BitPuffin | Araq: not even with the new vm? :( |
| 20:30:58 | Varriount | Araq: Look at it this way. You made a semi-working VM in a fraction of the time most vm-driven languages take to get to the same point |
| 20:32:58 | BitPuffin | yeah honestly the vm just sprung up in insanely short time |
| 20:33:04 | BitPuffin | whilst bugs where being fixed |
| 20:38:54 | * | io2_ joined #nimrod |
| 20:38:56 | EXetoC | I thought > 1 week was considered long :p |
| 20:39:28 | reactormonk | how do I access bit x in an integer? it's not [] |
| 20:39:33 | * | io2 quit (Ping timeout: 248 seconds) |
| 20:40:24 | Araq | reactormonk: x shr 5 and 1 <-- access bit 6 |
| 20:43:45 | vbtt | Didn't know nimrod used 'and' for bitops |
| 20:45:45 | reactormonk | btw, is it just me or does repr not work on tables? |
| 20:46:46 | Varriount | reactormonk: Apparently tables is something people should try to avoid |
| 20:47:02 | reactormonk | Varriount, how come? |
| 20:47:13 | Varriount | Araq has said that people are misusing it. |
| 20:47:17 | reactormonk | hm |
| 20:47:43 | reactormonk | I'm indexing over string IDs here. I could convert them to integer, but I don't know where they start. |
| 20:48:08 | Varriount | reactormonk: I think that's a proper usage. |
| 20:48:21 | reactormonk | what's an improper usage? |
| 20:48:37 | Varriount | <Varriount> So Araq, what *should* tables be used for? What kind of situations? |
| 20:48:37 | Varriount | <Araq> when you need a growable set of keys? best example is a symbol table in a compiler |
| 20:48:51 | reactormonk | ah, not with a static set |
| 20:48:58 | reactormonk | that's what you have objects / tuples for |
| 20:49:05 | Araq | yup |
| 20:49:37 | Varriount | Araq: Maybe we should put that question/answer at the top of the table module. |
| 20:49:41 | * | io2 joined #nimrod |
| 20:49:47 | BitPuffin | dom96: how is asyncio going? |
| 20:49:57 | * | io2 quit (Client Quit) |
| 20:50:17 | dom96 | BitPuffin: It's currently in Varriount's hands. |
| 20:50:18 | Varriount | BitPuffin: dom96 and I are trying to find an invisible memory size bug |
| 20:50:32 | * | xtagon joined #nimrod |
| 20:50:58 | Varriount | I just found another spot where adding an "echo()" causes the program to crash (not even segfault, just plain crash) |
| 20:51:06 | Varriount | Hi xtagon |
| 20:51:13 | xtagon | Hi Varriount |
| 20:51:18 | BitPuffin | Varriount: sounds like fun |
| 20:51:32 | Varriount | dom96, BitPuffin: I'm gonna have to stop in a bit, I have an essay to write and chores to do. |
| 20:51:36 | * | io2_ quit (Ping timeout: 252 seconds) |
| 20:52:01 | dom96 | Varriount: I have to sleep soon, school tomorrow :\ |
| 20:56:27 | vbtt | Araq: the 'obsolete' feature is still in? |
| 20:56:41 | Araq | vbtt: yes |
| 20:57:16 | Araq | {.obsolete: TTime, Time.} |
| 20:57:42 | vbtt | nice. That's going to be very useful. Afaik other languages don't have anything like it. |
| 20:57:58 | Varriount | What does obselete do again? |
| 20:58:06 | * | io2 joined #nimrod |
| 20:58:37 | Araq | Varriount: it tells the compiler about obsolete aliases |
| 20:58:49 | Varriount | Ooh, interesting. |
| 20:58:51 | Araq | "nimrod pretty" can get rid of them then |
| 21:01:49 | Araq | vbtt: "Afaik other languages don't have anything like it." <-- Nimrod in one sentence. ;-) |
| 21:02:05 | reactormonk | feature overload \o/ *duck* |
| 21:02:28 | * | aftershave quit (Quit: Computer has gone to sleep.) |
| 21:03:22 | Varriount | I find it alarming that gdb's backtrace function is presenting me with lots of ?? |
| 21:03:36 | Araq | Varriount: I don't really |
| 21:03:39 | reactormonk | http://dpaste.com/1570774/ - uuuhm, gives me "invalid indent" on the else |
| 21:04:37 | Varriount | reactormonk: Missing a paren on line 6 |
| 21:05:49 | * | io2 quit (Ping timeout: 252 seconds) |
| 21:05:54 | reactormonk | thanks |
| 21:07:25 | * | AndChat|206976 joined #nimrod |
| 21:07:26 | * | vbtt quit (Read error: Connection reset by peer) |
| 21:13:03 | Varriount | dom96: You still there? |
| 21:13:11 | dom96 | yea |
| 21:14:00 | Varriount | dom96: To what extent does proactor.nim use socketsll.nim? |
| 21:14:22 | reactormonk | http://dpaste.com/1570783/ I get "Error: identifier expected, but found '' |
| 21:14:24 | dom96 | To a very large extent, why? |
| 21:14:36 | reactormonk | ... on the line after let |
| 21:14:39 | Varriount | I haven't looked in socketsll.nim yet |
| 21:15:44 | Varriount | reactormonk: Identifier expected, but found... what? |
| 21:15:58 | EXetoC | the empty string :> |
| 21:16:28 | Varriount | What column? |
| 21:17:14 | reactormonk | 43 |
| 21:18:21 | Varriount | reactormonk: what is 'input'? |
| 21:18:49 | Varriount | and "reactions" |
| 21:19:49 | Araq | reactormonk: I can guarantee you that 'indirectInput.type' is wrong and will only cause internal errors later |
| 21:20:56 | reactormonk | Varriount, duh. Should be 'reaction'. Collided with a proc. |
| 21:22:01 | * | AndChat|206976 quit (Read error: Connection reset by peer) |
| 21:22:15 | * | vbtt joined #nimrod |
| 21:23:19 | Varriount | reactormonk: And always keep in mind that generics must have their types calculated at compile-time, not run time |
| 21:28:07 | * | zielmicha8 joined #nimrod |
| 21:30:29 | * | tdc quit (Ping timeout: 240 seconds) |
| 21:30:46 | renesac | Araq: the new nimrod VM generates bytecode? |
| 21:31:44 | Araq | renesac: yes |
| 21:32:16 | renesac | so we will be able to compile nimrod to plataform independent bytecode, for example? |
| 21:32:44 | Araq | no |
| 21:33:01 | renesac | :/ |
| 21:33:08 | renesac | well, no big deal |
| 21:33:24 | reactormonk | how Varriount I'm well aware |
| 21:33:55 | reactormonk | how do I add the contents of one seq to another? concat from sequtils? |
| 21:34:04 | reactormonk | kinda like += |
| 21:34:21 | Araq | '&' exists for seqs |
| 21:34:34 | reactormonk | cool |
| 21:34:43 | reactormonk | system.&=(x: var string, y: string) |
| 21:34:45 | reactormonk | hmmm |
| 21:34:56 | Araq | renesac: storing the bytecode to some file is no big deal but I don't see the point |
| 21:36:34 | EXetoC | reactormonk: there should probably be one for seqs too, but use add for now |
| 21:36:37 | EXetoC | add x |
| 21:36:46 | EXetoC | * x.add y |
| 21:36:50 | renesac | right, even with all this generics and metaprograming, nimrod compiles very fast |
| 21:37:06 | renesac | it is impressive |
| 21:37:54 | renesac | it was just out of curiosity |
| 21:38:28 | Araq | what I like would be to make "nakefiles" run fully interpreted |
| 21:38:38 | reactormonk | EXetoC, nope, doesn't work the way I intend it to |
| 21:38:38 | Araq | or nimrod scripts in general |
| 21:38:44 | renesac | yeah |
| 21:39:27 | renesac | no hit for ' nirmod "nakefiles" ' on google |
| 21:39:29 | renesac | ^" |
| 21:39:37 | EXetoC | reactormonk: sounds like it does exactly what you asked for, but ok |
| 21:39:56 | renesac | oops |
| 21:40:00 | reactormonk | EXetoC, oh, it does splat. |
| 21:40:02 | renesac | niMRod |
| 21:40:10 | reactormonk | didn't realize. |
| 21:40:12 | renesac | now one hit |
| 21:40:18 | EXetoC | :p |
| 21:40:25 | reactormonk | typechecks ftw |
| 21:41:07 | BitPuffin | renesac: try googling for "fowl github nake" lol |
| 21:41:46 | renesac | https://github.com/dockyard/party_foul <-- first hit, unrelated |
| 21:41:47 | renesac | XD |
| 21:42:13 | renesac | oh |
| 21:42:20 | renesac | google automatically thinks I mean "make" |
| 21:43:03 | renesac | the first hit is wrong again, but the second is to nimrod forums |
| 21:43:06 | reactormonk | http://dpaste.com/1570889/ gives me http://pastebin.com/k7pJN9PU - ideas? |
| 21:43:13 | reactormonk | general comments welcome too |
| 21:44:02 | fowl | renesac, github.com/fowlmouth/nake |
| 21:45:13 | renesac | google has a problem with you |
| 21:45:13 | renesac | XD |
| 21:45:18 | renesac | but thanks |
| 21:48:58 | renesac | duckduckgo has the right first hit for BitPuffin's query |
| 21:49:15 | BitPuffin | renesac: yay duckduckgo :) |
| 21:49:55 | renesac | and the nake github page is within the first 5 in simple queries like "nimrod nake" |
| 21:50:01 | renesac | and is the second in "nimrod nakefile" |
| 21:50:58 | Araq | reactormonk: for indirectInput in inputReaction.inputs # can be 'nil' and so the items iterator crashes |
| 21:52:23 | renesac | so the only conclusion we can take from this is that there is someone inside google saboting on us to protect their Go language |
| 21:52:36 | EXetoC | lol |
| 21:52:42 | BitPuffin | is there a good reason why we aren't allowed to write any two parameter proc inline using ``? |
| 21:52:50 | EXetoC | or the results are personalized |
| 21:53:09 | renesac | this wouldn't explain the lack of results |
| 21:53:16 | renesac | only the ordering, I think |
| 21:53:27 | BitPuffin | ala haskell |
| 21:55:02 | EXetoC | renesac: works for me |
| 21:55:19 | renesac | hum |
| 21:55:39 | renesac | yeah, google is becoming too inteligent for it's own good.. |
| 21:56:30 | renesac | the search results have been dropping in quality in the last years (thus, competitors like duckduckgo are rising...) |
| 21:56:38 | renesac | at least for me |
| 21:57:44 | BitPuffin | renesac: it's a shame that yacy gives shit results |
| 21:57:59 | BitPuffin | would be cool to not have to rely on a company for your searches |
| 21:58:08 | BitPuffin | but instead being able to have a private mini google |
| 21:58:34 | renesac | yeah, I checked it once, but it seems to only have a small german comunity |
| 21:59:32 | renesac | and I wasn't convinced of it's hability to protect against malicious insertions |
| 22:01:14 | Araq | duckduckgo is written in perl iirc |
| 22:01:36 | fowl | Araq, i tried to export a delegator `()` it doesnt work |
| 22:02:34 | vbtt | I haven't had problems with Google fwiw. The auto corrections can be reverted by one click. |
| 22:03:06 | BitPuffin | Araq: I believe it's lisp actually iirc |
| 22:03:55 | Araq | fowl: report it please |
| 22:04:11 | BitPuffin | Araq has been playing too much dota 2 |
| 22:04:33 | reactormonk | Araq, gimme yer steam ID, I wanna know when I pwn you |
| 22:04:51 | Araq | I don't play dota2 |
| 22:04:53 | BitPuffin | intentional feed, reported |
| 22:16:47 | BitPuffin | woop |
| 22:33:30 | * | BitPuffi1 joined #nimrod |
| 22:33:45 | * | BitPuffin quit (Ping timeout: 245 seconds) |
| 22:33:48 | BitPuffi1 | wao |
| 22:34:05 | * | BitPuffi1 is now known as BitPuffin |
| 22:37:01 | Araq | good night |
| 22:47:23 | * | AndChat|206976 joined #nimrod |
| 22:47:23 | * | vbtt quit (Read error: Connection reset by peer) |
| 22:51:11 | * | AndChat|206976 quit (Client Quit) |
| 23:15:45 | * | discoloda quit (Quit: restarting) |
| 23:24:57 | * | Discoloda joined #nimrod |
| 23:40:03 | * | BitPuffi1 joined #nimrod |
| 23:41:22 | * | noam quit (Read error: Connection reset by peer) |
| 23:41:39 | * | BitPuffin quit (Ping timeout: 252 seconds) |
| 23:41:39 | * | krusipo_ quit (Ping timeout: 252 seconds) |
| 23:41:53 | * | krusipo joined #nimrod |
| 23:46:58 | * | brson joined #nimrod |
| 23:47:07 | * | brson quit (Client Quit) |
| 23:47:33 | * | brson joined #nimrod |
| 23:55:23 | * | BitPuffi1 quit (Ping timeout: 265 seconds) |
| 23:58:27 | * | brson_ joined #nimrod |
| 23:59:35 | * | brson_ quit (Client Quit) |
| 23:59:49 | * | brson_ joined #nimrod |