00:00:09 | flaviu | nimnoob: profile later, you're probably fine. |
00:00:20 | nimnoob | :) |
00:00:26 | * | Demos quit (Ping timeout: 258 seconds) |
00:03:26 | * | Demos joined #nim |
00:06:23 | Stefan_Salewski | I guess something like one {.push cdecl.} in wrappers to save many cdecl pragmas are not a good idea or does not work at all? Just to be sure. |
00:06:51 | flaviu | Stefan_Salewski: It does work. |
00:07:26 | flaviu | Don't get any type declarations mixed up with your functions though, that causes errors. |
00:08:51 | willwillson | flaviu: for your nimlets page, would it be wise to make clear what license the snippets are under? |
00:09:20 | flaviu | willwillson: I do in the github repo, but excellent point. I'll do that. |
00:10:54 | willwillson | sounds good, nice work by the way! |
00:11:45 | flaviu | Thanks! |
00:13:37 | * | brson joined #nim |
00:14:38 | Araq | Stefan_Salewski, flaviu it's {.callConv: cdecl.}, {.push: cdecl.} only affects proc and not proc types iirc |
00:15:00 | Araq | as I said, .push has its gotchas |
00:16:01 | * | onionhammer joined #nim |
00:27:27 | * | cir0x joined #nim |
00:27:30 | Stefan_Salewski | Thanks Araq. I was not aware of callConv pragma. But I will provide each proc with its own cdecl pragma, to be on the save side. It is some work... |
00:28:08 | flaviu | Stefan_Salewski: use sed or perl? |
00:28:12 | Araq | Stefan_Salewski: no, just wait until I fixed c2nim |
00:31:01 | Stefan_Salewski | Yes, sed or perl, or ruby. But the patterns to match is not very simple, maybe multiple () levels may be involved? I am not absolutely sure. |
00:33:03 | Stefan_Salewski | Araq: Indeed a fixed c2nim may generate more trouble for me now, because all automatic processing after c2nim call may not work when output of c2nim is different... |
00:33:22 | * | nimnoob quit (Ping timeout: 246 seconds) |
00:33:23 | Stefan_Salewski | But of course It would be grat if you can fix c2nim! |
00:34:31 | Araq | well ... you should have started with patching c2nim :P |
00:35:24 | * | Trustable quit (Quit: Leaving) |
00:35:25 | fowl | write it by hand |
00:35:30 | flaviu | Stefan_Salewski: Piece of cake! |
00:35:31 | flaviu | perl -p -i -e 's/(proc[\s\S]*)=\s*$/\1 {.cdecl.} =/g' ./test.nim |
00:35:38 | * | Trustable joined #nim |
00:36:01 | Stefan_Salewski | My current wrappers are at https://github.com/stefansalewski -- and locally I have gdk3 and gtk3. All will need some work still... |
00:37:25 | fowl | cairo and glib wrappers already exist |
00:38:16 | Stefan_Salewski | Fowl: I did gtk3 in summer and noticed that a lot is missing from glib, cairo and others... |
00:39:04 | * | Demos_ joined #nim |
00:39:18 | flaviu | Stefan_Salewski: How does that perl command work? |
00:39:38 | Stefan_Salewski | But of course the old existing wrappers are helpful... |
00:39:55 | flaviu | Opps, I messed up slightly. `perl -p -i -e 's/(proc[\s\S]*?)=\s*$/\1 {.cdecl.} =/g' ./test.nim` |
00:39:57 | willwillson | what does c2nim miss with the --cdecl switch by the way? |
00:40:29 | Araq | willwillson: apparently proc type definitions |
00:41:49 | Stefan_Salewski | Thanks flaviu, I will test it. |
00:42:22 | flaviu | Stefan_Salewski: I misunderstood, I need to modify it for proc types |
00:42:25 | * | Demos quit (Ping timeout: 255 seconds) |
00:43:19 | Stefan_Salewski | flaviu: Dont worry, I will fix it myself... |
00:43:58 | Araq | Stefan_Salewski: hrm, --cdecl for me also affects proc types |
00:44:11 | willwillson | yeah, I just tested that as well |
00:44:15 | willwillson | and seems to work |
00:45:39 | willwillson | I also can see stefan using the --cdecl switch or the #cdecl directive in his scripts ;-) |
00:45:53 | willwillson | can't* |
00:48:24 | * | bjz joined #nim |
00:48:46 | Araq | willwillson: we simply need MOAR docs that people then happily ignore ;-) |
00:50:16 | Stefan_Salewski | Oh, I guess I did indeed miss the --cdecl parameter for c2nim. Sorry :-( |
00:50:27 | flaviu | Araq: Sounds like we need docs that are harder to ignore |
00:50:46 | flaviu | perhaps if they were more pleasant to use... |
00:51:17 | Araq | flaviu: yeah I guess your point is valid |
00:52:48 | Araq | Stefan_Salewski: however, callConv:cdecl does work reliably and reduces the noise |
00:52:49 | Stefan_Salewski | I did define my own pragma in the module like {.pragma: libgobj, cdecl, dynlib: LIB_GOBJ.} but forgot the --cdecl parameter to c2nim then... |
00:53:19 | Stefan_Salewski | That is nice. |
00:53:33 | willwillson | at least you scripted it all :D |
00:54:19 | Stefan_Salewski | But what will happen when the wrapper file contains same small Nim procs also? Maybe to simulate C define macros? |
00:54:27 | flaviu | Stefan_Salewski: Sorry, I couldn't resist. `perl -p -i -e 's/(proc\s*(?:(?!\)\s*:\s*[a-zA-Z0-9_{}.]+$|\)\s*$)[\S\s])*?\)\s*:?\s*[a-zA-Z0-9_]*\s*?)$/\1 {.cdecl.}/gm' ./test.nim` should work on proc types. |
00:54:53 | Stefan_Salewski | Thanks flaviu. |
00:55:20 | Araq | Stefan_Salewski: so they will be cdecl then, but that does no harm |
00:55:59 | Stefan_Salewski | Fine. |
01:00:55 | Araq | guys I updated the website again, please give some feedback |
01:02:47 | flaviu | Araq: The transition speed on `.headlinks a` is different from that on `.headlinks .active` |
01:03:29 | Araq | no idea what that means |
01:03:56 | flaviu | Araq: mouse over the header links |
01:04:16 | Araq | yes, afaict that's a feature |
01:04:28 | Araq | there is some special-casing in the javascript |
01:04:42 | Araq | no idea why it is here, it's filwit's code |
01:04:47 | EXetoC | the snippets sometimes go below that blue line |
01:04:49 | flaviu | Javascript shouldn't be necessary for that anyway, but ok. |
01:04:56 | willwillson | http://nimrod-lang.org/community.html still has too many links at the top |
01:05:41 | flaviu | A templating library for nim is sorely needed. |
01:07:00 | willwillson | also, your gittip link seems to be cut off (on the same page) |
01:07:22 | willwillson | granted, most people don;t make it down that far ;-) |
01:07:41 | flaviu | Also, the gittip link makes noscript think that I'm being clickjacked |
01:07:44 | Araq | willwillson: the "hidden tabs" are a feature ... |
01:07:58 | Araq | EXetoC: they don't for me |
01:08:31 | willwillson | Araq: you mean the home link that gets hidden behind the logo? :D |
01:08:48 | Stefan_Salewski | Sorry, on more question: Is it {.push callconv: cdecl.} as used in https://github.com/fowlmouth/nimrod-sfml/blob/master/csfml.nim |
01:09:02 | Araq | willwillson: doesn't for me, but I guess font size can fuck up everything |
01:10:47 | EXetoC | behind the logo? |
01:11:04 | EXetoC | maybe if the font size is like 128 |
01:11:23 | willwillson | on http://nim-lang.org/community.html ? |
01:12:09 | EXetoC | almost for me |
01:12:15 | Araq | nope, always renders nicely on FF at least |
01:12:15 | EXetoC | but it is closer than on the main page |
01:12:30 | Araq | EXetoC: yes because there is one tab more |
01:12:41 | EXetoC | yeah |
01:12:51 | willwillson | overlaps on chromium and firefox for me |
01:13:04 | Araq | well if anybody has a better idea, I'm all ears |
01:13:07 | willwillson | default font size (as far as I know) |
01:13:10 | Araq | we have too many tabs |
01:13:28 | EXetoC | and not for me on firefox |
01:14:59 | EXetoC | do you not let the page use any font? |
01:15:30 | * | repax quit (Quit: repax) |
01:15:50 | willwillson | as far as I know I haven't changed any settings |
01:16:21 | willwillson | you could get rid of the community tab as it is also in "more links"? |
01:19:37 | Stefan_Salewski | Araq wrote: it's {.callConv: cdecl.}, -- or {.push callconv: cdecl.} as used in https://github.com/fowlmouth/nimrod-sfml/blob/master/csfml.nim |
01:20:01 | Stefan_Salewski | Sorry can not test. |
01:20:15 | Araq | willwillson: it's not in the list of tabs |
01:20:23 | Araq | unless you are on that very page |
01:20:37 | Araq | because I considered "no active tab at all" more confusing |
01:20:48 | willwillson | I see |
01:20:59 | EXetoC | it's odd |
01:22:01 | * | flaviu quit (Ping timeout: 265 seconds) |
01:24:09 | * | flaviu joined #nim |
01:26:14 | Araq | Stefan_Salewski: use the .push version |
01:26:33 | Stefan_Salewski | Thanks. |
01:30:31 | Varriount | It's too bad we can't give the method machinery the option to use vtables |
01:31:28 | Varriount | Araq: What's the benefit of the current method mechanism, besides not requiring a vtable pointer in the target type? |
01:31:41 | Demos_ | Varriount, multiple dispatch |
01:31:46 | Araq | ease of implementation |
01:31:52 | Demos_ | so it dispatches on the "real" dynamic type of each object |
01:32:08 | Demos_ | without requiring insane visitor stuff |
01:32:33 | Varriount | Demos_: Yes, but can't vtables do that as well? |
01:32:49 | Varriount | Also, 'visitor stuff'? |
01:32:50 | Demos_ | Varriount, not as far as I know, at least not without the visitor pattern |
01:33:03 | Demos_ | visitor gets you multiple dispatch from single dispatch |
01:33:08 | Araq | meh, vtables can do it, but's quite tricky |
01:33:23 | Demos_ | but it is a nonlinear growth in code for each additional type to dispatch on |
01:33:36 | Demos_ | Araq, does any language do it? |
01:33:47 | Varriount | What about dispatch tables? |
01:34:13 | Araq | what's your difference between vtable and dispatch table? |
01:34:40 | Varriount | Nothing, I thought, from what demos said, that they were different things. |
01:35:00 | Araq | Demos_: some impls of common lisp perhaps |
01:36:39 | Varriount | Hm. I don't see what's so insane about dispatch tables. |
01:39:13 | * | Trustable quit (Quit: Leaving) |
01:40:33 | Araq | well I'll improve the website if you tell me how |
01:40:36 | Araq | good night |
01:40:43 | * | cir0x quit (Ping timeout: 244 seconds) |
01:42:45 | Varriount | Hm. Is it possible to modify enums while maintaining backwards compatibility? |
01:46:25 | * | elvispresley- quit (Ping timeout: 250 seconds) |
01:56:32 | * | cyraxjoe joined #nim |
01:57:40 | Varriount | Hello cyraxjoe |
01:57:51 | cyraxjoe | Hi! |
02:16:26 | * | elvispresley- joined #nim |
02:18:55 | * | ARCADIVS quit (Quit: ARCADIVS) |
02:19:32 | * | cir0x joined #nim |
02:22:16 | * | Stefan_Salewski quit () |
02:22:42 | * | darkf joined #nim |
02:32:40 | onionhammer | varriount you ready to get back on nimlime again and get a new release out yet? |
02:46:48 | * | cir0x quit (Ping timeout: 258 seconds) |
02:56:30 | Demos_ | I should work on VisualNimrod over break |
03:17:38 | ldlework | |
03:29:10 | * | bjz quit (Read error: Connection reset by peer) |
03:29:32 | * | bjz joined #nim |
03:39:11 | * | Varriount_ joined #nim |
03:39:33 | * | Varriount quit (Ping timeout: 244 seconds) |
03:41:41 | * | vegai joined #nim |
04:01:26 | * | quasinoxen joined #nim |
04:03:38 | onionhammer | Demos_ yes you should ;0 |
04:17:31 | * | saml_ joined #nim |
04:20:16 | * | dts|pokeball joined #nim |
04:20:23 | * | willwillson quit (Ping timeout: 265 seconds) |
04:21:06 | dts|pokeball | so does nim have a subreddit? |
04:32:22 | Demos_ | yes, but it is not that active, the fora are where people tend to go |
04:37:52 | dts|pokeball | hmmm |
04:37:58 | dts|pokeball | my bot isnt working :/ |
04:39:22 | dts|pokeball | if anyone whos familiar with the db_sqlite module could look at my http://paste.ubuntu.com/9510958/ when i do ,credit nothing happens |
04:39:25 | dts|pokeball | for example: |
04:39:36 | * | BillsPC joined #nim |
04:39:44 | dts|pokeball | ,credit dts|pokeball |
04:42:23 | dts|pokeball | ,join #cplusplus.com |
04:43:34 | flaviu | dts|pokeball: Try using a debugger or a bunch of print statements |
04:43:50 | dts|pokeball | hmmm... alright |
04:44:15 | dts|pokeball | ,join #learnmath |
04:59:26 | * | flaviu quit (Ping timeout: 258 seconds) |
05:01:52 | dts|pokeball | ,part #nim |
05:01:53 | * | BillsPC left #nim (#nim) |
05:20:48 | * | alphawaffle joined #nim |
05:21:30 | * | AMorpork quit (Quit: ZNC - http://znc.in) |
05:21:59 | * | AMorpork joined #nim |
05:32:13 | * | saml_ quit (*.net *.split) |
05:32:14 | * | Varriount_ quit (*.net *.split) |
05:32:14 | * | darkf quit (*.net *.split) |
05:32:15 | * | dts|pokeball quit (*.net *.split) |
05:32:15 | * | Sembei quit (*.net *.split) |
05:32:17 | * | Demos_ quit (*.net *.split) |
05:32:18 | * | Triplefox quit (*.net *.split) |
05:32:41 | * | alphawaffle is now known as betawaffle |
05:34:53 | * | saml_ joined #nim |
05:39:13 | * | shodan45_ joined #nim |
05:39:13 | * | Demos_ joined #nim |
05:39:13 | * | Triplefox joined #nim |
05:41:16 | * | voldern1 joined #nim |
05:41:34 | * | shodan45_ quit (Remote host closed the connection) |
05:42:04 | * | shodan45_ joined #nim |
05:43:11 | * | cir0x joined #nim |
05:48:21 | * | dts|pokeball joined #nim |
05:48:21 | * | Varriount_ joined #nim |
05:48:21 | * | darkf joined #nim |
05:48:21 | * | Sembei joined #nim |
05:48:23 | * | cir0x quit (Ping timeout: 272 seconds) |
05:49:42 | * | Sembei quit (Max SendQ exceeded) |
05:51:47 | * | Sembei joined #nim |
05:53:55 | ldlework | guys, why am I getting qix.nim(52, 26) Error: ambiguous identifier: 'TRect' -- use a qualifier |
05:53:59 | ldlework | https://gist.github.com/dustinlacewell/187458538f284d1afb53 |
05:54:03 | ldlework | how is it ambiguous? |
05:58:18 | * | comex joined #nim |
05:59:28 | * | comex quit (*.net *.split) |
05:59:29 | * | Varriount_ quit (*.net *.split) |
05:59:29 | * | darkf quit (*.net *.split) |
05:59:29 | * | dts|pokeball quit (*.net *.split) |
06:00:09 | * | saml_ quit (Quit: Leaving) |
06:00:38 | * | comex joined #nim |
06:00:38 | * | dts|pokeball joined #nim |
06:00:38 | * | Varriount_ joined #nim |
06:00:38 | * | darkf joined #nim |
06:12:27 | * | brson quit (Quit: leaving) |
06:51:54 | fowl | sdl has a trect also |
06:55:01 | fowl | oh idk |
06:58:28 | * | shodan45_ quit (Quit: Konversation terminated!) |
07:03:36 | * | gour joined #nim |
07:08:30 | * | flaviu joined #nim |
07:08:31 | * | RayoGundead joined #nim |
07:09:49 | * | RayoGundead quit (Client Quit) |
07:17:17 | * | starless joined #nim |
07:52:08 | * | Demos_ quit (Read error: Connection reset by peer) |
08:10:42 | ldlework | When you have a type it says you cannot call that type what does it mean? |
08:10:43 | ldlework | Error: expression 'Line' cannot be called |
08:10:53 | ldlework | how else do you create an instance of your type? |
08:18:38 | ldlework | ah you have to specify each field name explicitly |
08:19:24 | * | milosn joined #nim |
08:25:57 | * | EastByte joined #nim |
09:37:31 | * | yeye123 joined #nim |
09:40:06 | ldlework | you use addr() to get a ptr |
09:40:09 | ldlework | how do you get a ref |
09:40:14 | ldlework | oh right |
09:40:20 | * | starless quit (Quit: WeeChat 0.4.2) |
09:40:35 | * | Matthias247 joined #nim |
09:52:37 | Araq | ldlework: you can't. you 'new' a ref. there is no other way to get a 'ref'. This way the compiler/GC always knows a 'ref' is on the heap |
09:53:07 | Araq | and it also cannot be an interior pointer |
10:05:34 | * | BlaXpirit joined #nim |
10:13:10 | yeye123 | moin |
10:13:28 | Araq | servus |
10:53:46 | dts|pokeball | does nim not have a regex module? |
10:54:16 | * | milosn quit (Read error: Connection reset by peer) |
10:55:09 | * | milosn joined #nim |
10:58:35 | * | Boscop joined #nim |
11:03:18 | ldlework | dts|pokeball: there is peg |
11:03:53 | dts|pokeball | hmmm... can i use it for basic string parsing? |
11:20:20 | Varriount_ | dts|pokeball: Yep |
11:20:39 | ldlework | welll |
11:20:45 | ldlework | you can use it for basic string matching |
11:20:45 | Varriount_ | dts|pokeball: Nim has two regex modules, though only one is majorly used. |
11:20:47 | ldlework | not parsing |
11:21:05 | Varriount_ | Both are wrappers around C regex libraries. |
11:21:12 | * | Varriount_ is now known as Varriount |
11:22:28 | dts|pokeball | ok, let me tell you what im trying to do and you guys can suggest which would be better. i wrote an irc bot, but i want to handle the registering and all of that in a seperate loop, and the final statement of it registering is something like: "your new host is bla bla". which should i do for that? |
11:29:49 | Varriount | 'registering'? |
11:30:15 | dts|pokeball | register your nick |
11:30:22 | dts|pokeball | oops |
11:30:25 | dts|pokeball | wrong term |
11:30:43 | dts|pokeball | basically authenticate your bot with the server or whatever its called |
11:30:48 | dts|pokeball | my brain is fried atm |
11:31:11 | Varriount | dts|pokeball: Well, if you want to pick out a term from a string, use pegs or regex |
11:31:32 | dts|pokeball | hmmm alright |
11:31:34 | dts|pokeball | thanks guys |
11:33:34 | * | Trustable joined #nim |
11:38:27 | darkf | bleh, uname -m on mingw/msys is giving me i686 even on an amd64 system |
11:38:41 | * | BlaXpirit quit (Quit: Quit Konversation) |
11:40:53 | * | gokr_ joined #nim |
11:41:35 | gokr_ | cool, new channel! |
11:42:17 | * | Varriount does the new-channel dance |
11:42:29 | * | yeye123 quit (Quit: Leaving) |
11:48:58 | * | gokr_ quit (Ping timeout: 264 seconds) |
11:50:20 | * | gokr_ joined #nim |
11:53:16 | * | enurlyx joined #nim |
11:53:33 | ldlework | how do I avoid this duplication? https://gist.github.com/dustinlacewell/5d83c2f81f0cc7d1a420 |
11:54:32 | ldlework | wtf it says, /home/dlacewell/dev/nim/nimple/src/controller.nim(13, 0) Error: redefinition of 'pressed' |
11:54:43 | ldlework | how is it a duplication if it has different type parameters? |
11:57:32 | Varriount | ldlework: Looks like a bug. |
11:58:10 | ldlework | Its like it ocnsiders them equivalent types |
12:04:09 | gokr_ | and TKey TMod are distinct? |
12:05:53 | gokr_ | or are they just aliases for same type? |
12:08:35 | darkf | is there a way to make C FFI procs accept an integer for a char, or is there a 'cchar' type, or should i just write a wrapper using chr()? |
12:09:17 | darkf | or maybe int8 is fine |
12:13:38 | Araq | darkf: well C's char is char or int8 or byte in Nim |
12:14:22 | darkf | Araq: int8 works fine (is byte an alias?) -- char would be fine for chars but you can't use integer literals :) |
12:14:38 | Araq | byte is an alias for uint8 |
12:14:42 | darkf | cool |
12:14:52 | darkf | it's very easy to wrap DLLs, thanks for that :) |
12:15:41 | Araq | thanks, usually I get the blame that some irrelevant tool doesn't detect the dependencies |
12:15:59 | Araq | because it uses dlopen instead of staticlib.a linking dances |
12:16:44 | darkf | heh |
12:16:46 | Araq | strangely these people never blame Python for doing the same thing |
12:17:12 | darkf | they have to take out their frustration somewhere i suppose |
12:18:03 | Araq | the existence of "devel linking packages" on Linux is absurd IMO |
12:24:51 | ldlework | can I return nil where a value is expected? |
12:25:11 | Araq | depends on the value |
12:25:31 | ldlework | has to be ref or ptr? |
12:25:54 | Araq | or cstring or pointer or proc |
12:26:04 | Araq | or string or seq |
12:26:37 | Araq | when compiles(isNil(x)) # check if 'nil' is valid |
12:26:59 | Araq | that said, we will eventually replace 'compiles' by a saner mechanism |
12:27:18 | Araq | like 'supportsOp' |
12:29:35 | ldlework | what's the idomatic way to return 'n/a' |
12:29:42 | ldlework | like an option type? |
12:30:10 | Araq | depends |
12:30:33 | Araq | I don't like option types so Option[T] is not in system.nim |
12:30:37 | darkf | hm |
12:30:44 | darkf | Error: cannot open 'os' |
12:30:54 | darkf | this is on a freshly compiled build |
12:31:01 | ldlework | Araq: what if you have a function that can return a float or some 'invalid' result? |
12:31:15 | Araq | ldlework: NaN ? |
12:31:21 | ldlework | Araq: yeah |
12:31:24 | ldlework | something like that |
12:31:35 | Araq | well NaN has been designed for that |
12:31:43 | Araq | so I'd use that |
12:32:04 | ldlework | is that described anywhere? |
12:32:10 | Araq | or raise an exception |
12:32:24 | Araq | why should it be? we don't document how you should write your programs |
12:32:31 | ldlework | what? |
12:32:39 | ldlework | is NaN a thing in the language? |
12:32:44 | Araq | yes. |
12:32:50 | Araq | it is in the manual |
12:33:04 | ldlework | I see it referred to three times and none of them explain it much |
12:33:16 | Araq | system.NaN |
12:33:29 | Araq | NaN* {.magic: "NaN".} = 0.0 / 0.0 |
12:33:30 | Araq | ## contains an IEEE floating point value of *Not A Number*. Note |
12:33:32 | Araq | ## that you cannot compare a floating point value to this value |
12:33:33 | Araq | ## and expect a reasonable result - use the `classify` procedure |
12:33:35 | Araq | ## in the module ``math`` for checking for NaN. |
12:33:45 | darkf | does the os module not ship with the compiler or do i need to compile it separately or is my build broken? :) |
12:33:58 | Araq | darkf: your build is broken |
12:34:04 | Araq | gotta go, see you later |
12:34:05 | darkf | great |
12:34:07 | darkf | cya |
12:36:26 | * | flaviu1 joined #nim |
12:37:01 | * | flaviu quit (Remote host closed the connection) |
12:38:47 | darkf | ah i misread the readme, all good now |
12:43:42 | * | bitcrusher joined #nim |
12:44:25 | bitcrusher | does nim have a selenium library or some kind of web automation? |
12:44:39 | bitcrusher | trying to smash my items into gems in for steam |
12:44:52 | bitcrusher | tried to do it with clojure but gave up ;0 |
12:51:42 | * | gokr_ quit (Ping timeout: 258 seconds) |
12:52:58 | * | gokr_ joined #nim |
12:57:18 | ldlework | if you have a ref to a float, how can you create a new float and set its value? |
12:58:01 | ldlework | got it |
12:58:23 | EXetoC | create a new one? you mean dereference? with [] |
13:02:58 | flaviu1 | The forum <title> still needs updating. |
13:23:35 | * | flaviu1 is now known as flaviu |
13:29:14 | * | flaviu quit (Quit: Leaving.) |
13:35:37 | * | flaviu joined #nim |
13:36:48 | * | gokr joined #nim |
13:37:11 | Varriount | bitcrusher: No, nim doesn't have any web automation... yet. |
13:40:19 | * | vendethiel left #nim (#nim) |
13:43:13 | dom96 | We lost half our users :( |
13:44:56 | gokr | But... they may come back on monday when they get back to their work machines |
13:45:21 | flaviu | I wouldn't really count those people as users if they don't participate. |
13:45:24 | ldlework | Has anyone here ever played the old arcade game Qix? |
13:50:44 | * | milosn quit (Ping timeout: 256 seconds) |
13:56:29 | * | enurlyx quit (Ping timeout: 245 seconds) |
13:57:22 | * | enurlyx joined #nim |
13:59:04 | * | flaviu1 joined #nim |
13:59:41 | * | flaviu1 quit (Client Quit) |
14:06:48 | * | flaviu quit (Read error: Connection reset by peer) |
14:12:03 | EXetoC | ldlework: nice sound effects |
14:12:19 | ldlework | EXetoC: I'm remaking that in Nim right now |
14:12:32 | * | nimnoob joined #nim |
14:13:10 | ldlework | far more challening than I imagined |
14:18:08 | EXetoC | yeah? |
14:19:37 | * | pafmaf_ joined #nim |
14:23:03 | ldlework | yeah, polygon partitioning and and so on |
14:23:58 | * | pafmaf_ quit (Client Quit) |
14:24:08 | * | pafmaf joined #nim |
14:33:27 | * | pafmaf quit (Quit: Verlassend) |
14:35:42 | ldlework | damn precision errors |
14:38:19 | * | gour_ joined #nim |
14:40:03 | ldlework | ah fixed |
14:40:50 | * | flaviu_ joined #nim |
14:42:17 | * | gour quit (Ping timeout: 272 seconds) |
14:43:10 | * | cir0x joined #nim |
14:47:55 | * | gour_ is now known as gour |
14:52:20 | Araq | bitcrusher: please wrap some selenium library. shouldn't be hard. |
14:54:42 | * | flaviu_ is now known as flaviu |
15:05:28 | * | cir0x quit (Ping timeout: 244 seconds) |
15:07:27 | Araq | dom96: I count 2 show stopper bugs assigned to you, 1 to me |
15:07:46 | dom96 | Araq: I count 1 exam tomorrow. |
15:07:59 | Araq | lol? it's almost christmas |
15:08:17 | Araq | how come you still have exams? |
15:08:20 | flaviu | Araq: That means finals |
15:08:45 | EXetoC | but that's less important, right? |
15:09:36 | flaviu | dom96: Studying is for plebs :P |
15:09:41 | EXetoC | 5 seconds to build and run a vibe.d project. how annoying |
15:13:26 | * | willwillson joined #nim |
15:14:10 | EXetoC | speaking of which, we should advertise the compilation speed too |
15:14:56 | * | cir0x joined #nim |
15:16:54 | * | quasinoxen quit (Ping timeout: 245 seconds) |
15:18:31 | * | nimnoob quit (Ping timeout: 246 seconds) |
15:18:31 | * | quasinoxen joined #nim |
15:40:17 | * | cir0x quit (Ping timeout: 245 seconds) |
15:45:44 | * | dts|pokeball quit (Ping timeout: 258 seconds) |
15:50:19 | * | bjz quit (Read error: Connection reset by peer) |
15:50:20 | * | dts|pokeball joined #nim |
15:50:35 | * | bjz joined #nim |
15:52:31 | * | flaviu quit (Read error: Connection reset by peer) |
15:52:50 | * | flaviu joined #nim |
16:01:17 | * | darkf quit (Quit: Leaving) |
16:05:53 | * | dts|pokeball quit (Ping timeout: 272 seconds) |
16:22:09 | * | gokr_ quit (Ping timeout: 258 seconds) |
16:27:20 | * | johnsoft joined #nim |
16:34:42 | * | nimnoob joined #nim |
16:38:46 | * | irrequietus joined #nim |
17:14:39 | * | repax joined #nim |
17:34:22 | * | gour_ joined #nim |
17:37:40 | * | gour quit (Ping timeout: 250 seconds) |
17:52:20 | flaviu | / |
17:52:52 | flaviu | oops |
17:55:00 | flaviu | Btw, the topic is a bit out of date - it still has a couple "nimrod"s |
17:56:35 | flaviu | Also, url shorteners are frequently viewed with suspicion - perhaps the bit.ly address should be replaced with a git.io address so people know it goes to github |
17:56:37 | flaviu | http://git.io/gHZGCg |
17:58:28 | * | milosn joined #nim |
18:06:51 | * | milosn quit (Read error: Connection reset by peer) |
18:07:50 | * | milosn joined #nim |
18:16:21 | dom96 | flaviu: That URL is for my own use so *shrug* |
18:17:14 | Varriount | Araq: Uploading tests works, however I need some input. |
18:18:03 | Varriount | Araq: Do you want test results to be named by commit, or by build number (or both) |
18:18:04 | flaviu | dom96: Btw, build farm is at http://nim-lang.org:8010/waterfall |
18:18:44 | dom96 | Nope, the buildbot is at http://buildbot.nim-lang.org/ ;) |
18:19:02 | dom96 | That port shouldn't be allowed. |
18:19:30 | flaviu | Btw, the bitly address got chopped off. |
18:19:39 | dom96 | shit |
18:19:52 | flaviu | You could get rid of all the `http://` and make some space |
18:20:08 | dom96 | Now I can't remember what it was... |
18:20:19 | flaviu | bit.ly/1aEJ2xj |
18:20:40 | flaviu | git.io/gHZGCg is also an option, but do what you want. |
18:21:16 | Varriount | dom96: Well thanks for telling me. :P |
18:21:24 | dom96 | Varriount: I did tell you. |
18:22:52 | repax | bitly supports https |
18:23:56 | flaviu | repax: Yeah, but people often use it to get around filters for malicious links. That's where it's insecure reputation comes from. |
18:29:53 | repax | if that's what worries you then, yes, git.io seems better |
18:36:23 | * | cir0x joined #nim |
18:39:34 | * | flaviu quit (Read error: Connection reset by peer) |
18:40:15 | Varriount | Huh, you can go to http://buildbot.nim-lang.org/build_tests/ to view all the build tests. I'll have to modify the build page to display a link to that. |
18:40:16 | * | flaviu joined #nim |
18:41:04 | * | cir0x quit (Ping timeout: 255 seconds) |
18:41:26 | flaviu | Sorry about popping in and out, but wouldn't it be a better idea to expose the test sqlite database as the artifact instead? |
18:42:11 | flaviu | That way someone who wants access to the data can access it programaticlly without scraping html. |
18:44:37 | Varriount | flaviu: Good idea. I'll do that too. |
18:45:17 | Varriount | I wonder though, should the naming scheme for tests change? Right now, they are associated with the build number, not with a commit hash |
18:52:53 | * | yeye123 joined #nim |
18:55:21 | * | flaviu quit (Remote host closed the connection) |
19:02:56 | * | BlaXpirit joined #nim |
19:03:43 | * | elvispresley- quit (Remote host closed the connection) |
19:05:38 | nimnoob | could i ask a syntax question here? |
19:06:00 | Varriount | nimnoob: Of course. |
19:06:08 | nimnoob | Thanks |
19:07:00 | EXetoC | that's allowed now? |
19:07:39 | Varriount | EXetoC: It's always allowed for everyone (except you ;3) |
19:07:52 | EXetoC | oh |
19:08:32 | nimnoob | http://pastebin.com/mHmw4wzg |
19:08:44 | * | flaviu joined #nim |
19:08:48 | nimnoob | i am trying to add a method to a generic type |
19:09:00 | nimnoob | getting a ')' expected error |
19:10:38 | EXetoC | notice the difference between those two parameters |
19:10:49 | EXetoC | you got the order wrong and missed a colon |
19:11:06 | nimnoob | omg |
19:11:27 | nimnoob | thanks. i am sorry for that |
19:11:48 | nimnoob | sleeping baby on my chest is cutting off my air supply |
19:12:13 | EXetoC | no need to blame that. it's hard to get used to it :p |
19:12:21 | Varriount | That's happened to me before. |
19:13:15 | nimnoob | half c# half nim |
19:18:35 | * | starless joined #nim |
19:19:39 | * | flaviu quit (Remote host closed the connection) |
19:20:03 | * | flaviu joined #nim |
19:23:20 | * | flaviu quit (Read error: Connection reset by peer) |
19:36:12 | Varriount | dom96: So, has your semester ended yet? |
19:36:28 | dom96 | Varriount: nope |
19:39:11 | Varriount | :< |
19:40:40 | * | nimnoob quit (Ping timeout: 246 seconds) |
19:42:31 | * | cir0x joined #nim |
19:48:10 | * | dts|pokeball joined #nim |
20:08:30 | * | ciony joined #nim |
20:17:48 | * | dts|pokeball quit (Read error: Connection reset by peer) |
20:18:50 | * | dts|pokeball joined #nim |
20:20:53 | * | rpag joined #nim |
20:37:54 | * | ciony quit (Ping timeout: 245 seconds) |
20:44:06 | * | ARCADIVS joined #nim |
21:04:56 | * | ciony joined #nim |
21:05:11 | * | milosn quit (Ping timeout: 264 seconds) |
21:05:35 | * | bjz quit (Ping timeout: 244 seconds) |
21:15:14 | * | dts|pokeball quit (Ping timeout: 245 seconds) |
21:26:45 | * | ciony2 joined #nim |
21:28:38 | * | ciony quit (Ping timeout: 250 seconds) |
21:33:57 | * | ciony2 quit (Quit: Nettalk6 - www.ntalk.de) |
21:34:15 | * | gour__ joined #nim |
21:35:34 | * | ciony joined #nim |
21:37:08 | * | milosn joined #nim |
21:37:28 | * | gour_ quit (Ping timeout: 255 seconds) |
21:41:59 | * | yeye123 quit (Quit: Leaving) |
22:00:26 | * | dts|pokeball joined #nim |
22:11:06 | * | dts|pokeball quit (Ping timeout: 250 seconds) |
22:12:08 | * | flaviu joined #nim |
22:18:13 | * | dts|pokeball joined #nim |
22:21:08 | * | flaviu quit (Remote host closed the connection) |
22:22:43 | * | flaviu joined #nim |
22:23:53 | * | flaviu quit (Remote host closed the connection) |
22:26:18 | * | gour__ quit (Quit: Konversation terminated!) |
22:41:05 | * | BlaXpirit quit (Quit: Quit Konversation) |
22:56:01 | Araq | ah Varriount thanks! |
22:56:12 | Araq | finally I can look at the test results |
23:03:26 | * | starless quit (Quit: WeeChat 0.4.2) |
23:05:35 | Varriount | Araq: Well, I'm still sorting out teething troubles. |
23:06:02 | Varriount | It's hard to debug when 'testing' means completing an entire build cycle, which can take over 45 minutes. |
23:06:16 | Araq | lol |
23:06:39 | Araq | you know there at least 3 methods to cut the build times |
23:06:42 | * | StefanSalewski joined #nim |
23:07:38 | Varriount | Araq: ? |
23:07:54 | Araq | 1. simply run the tester for a single 'category' like so: tester c templates |
23:08:19 | Araq | 2. move several test dirs to something else so the tester doesn't find them |
23:08:52 | Araq | 3. mark long running tests with 'disabled: true' in the discard """ ... """ section |
23:09:46 | Varriount | Araq: #1 would work, if I didn't rely on 'koch test'. I might be able to do #2 though. #3 is hard to do. |
23:10:15 | Varriount | Are you sure moving test dirs won't cause errors? |
23:10:49 | Araq | you shouldn't invoke 'koch test', it's just calls the tester anyway with 'all' or similar |
23:11:59 | Araq | Varriount: well yeah, some dirs get special treatment |
23:13:08 | StefanSalewski | Warnings for deprecated proc names are given twice -- seems to be a minor bug? See this 4 lines program: |
23:13:14 | StefanSalewski | proc te(i: int): int = |
23:13:31 | StefanSalewski | 0 |
23:13:48 | StefanSalewski | {.deprecated: [test: te].} |
23:14:04 | StefanSalewski | discard test(1) |
23:14:27 | StefanSalewski | t67.nim(7, 8) Warning: use te instead; test is deprecated [Deprecated] |
23:14:30 | StefanSalewski | t67.nim(7, 8) Warning: use te instead; test is deprecated [Deprecated] |
23:14:41 | StefanSalewski | Bye... |
23:14:46 | * | StefanSalewski quit () |
23:14:54 | Araq | but only a few and they are listed in https://github.com/Araq/Nimrod/blob/devel/tests/testament/categories.nim |
23:16:37 | Araq | hrm I didn't know that you can just shit a bug report to IRC and call it a day. I thought we have a bug tracker for these things... |
23:19:26 | Varriount | Uhm... What was that? |
23:19:55 | Varriount | Araq: But koch makes things so easy. I just have to invoke 'koch boot', 'koch test', etc to have things work. No fiddling around with working directories and stuff. |
23:20:28 | Varriount | Plus, if the boot or testing process has to change, I don't have to edit the build steps |
23:21:02 | Araq | well you only have to tell me to keep it backwards compatible and then I do that |
23:23:05 | Varriount | Araq: Speaking of which, is there a way to make enums that can be edited without breaking backwards compatibility? |
23:23:35 | Araq | you can make it a 'distinct int' instead |
23:23:40 | Araq | and then have consts |
23:23:48 | Araq | works when you didn't use .pure enums |
23:23:59 | Araq | but hrm, no |
23:24:14 | Araq | 'case' demands exhaustiveness either way |
23:25:20 | Araq | so. nope, there is no way. |
23:25:22 | * | ARCADIVS quit (Quit: ARCADIVS) |
23:25:54 | * | dts|pokeball quit (Quit: Leaving) |
23:26:06 | Varriount | Too bad you can't mark an enum with ranges of exhaustiveness. Like "either this range of values must be completely checked, or this range, etc" |
23:26:13 | * | dts|pokeball joined #nim |
23:27:09 | Varriount | Araq: Oh yeah, I read about this hot-patching technique, and wondered if it could be used in nimrod |
23:28:15 | Varriount | Apparently, in Windows, certain internal procedures have 8 no-op instructions right after the function start point |
23:29:01 | Varriount | When these functions need to be updated, and the system can't afford to be rebooted (like for servers) the OS instead writes over these no-op instructions to jump to another function instead. |
23:29:46 | Varriount | I thought it was quite clever. |
23:33:06 | * | irrequietus quit () |
23:33:06 | Araq | yup, but iirc Linux does similiar stuff |
23:33:55 | EXetoC | how often is that doable? |
23:36:40 | Varriount | EXetoC: What do you mean? |
23:37:02 | enurlyx | I think the os can override the jump again and again? |
23:37:26 | Varriount | enurlyx: Yes, it can just write over the same area |
23:42:15 | * | repax quit (Quit: repax) |
23:44:37 | enurlyx | Varriount: But is not the code like static data in a read only section? How to override then, if not beeing the os? |
23:45:51 | Varriount | enurlyx: Well, the only thing that prevents writing to that section is memory page settings. |
23:46:17 | Varriount | enurlyx: The code is loaded into memory pages, and then the pages are marked as read only. |
23:46:51 | Varriount | Thing is, the OS usually provides ways of marking pages as writeable again. |
23:49:16 | enurlyx | Varriount: Ah, ok that makes sense then. |
23:53:09 | Varriount | enurlyx: I'm trying to find the windows API that allows it. I't may only be available to driver-level programs though. |
23:53:59 | Varriount | enurlyx: As you can imagine, arbitrarily writing to executable memory is something that the OS usually wants to *prevent*, so it's not done very often. |
23:55:12 | Varriount | Actually, going through some of the various API procedures that windows provides can be quite interesting. Look at this one - http://msdn.microsoft.com/en-us/library/windows/desktop/aa366561(v=vs.85).aspx |
23:57:45 | Varriount | Ah, here we go. The procedure is named VirtualProtect - http://msdn.microsoft.com/en-us/library/windows/desktop/aa366898(v=vs.85).aspx |