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 |