<< 14-12-2014 >>

00:00:09flaviunimnoob: profile later, you're probably fine.
00:00:20nimnoob:)
00:00:26*Demos quit (Ping timeout: 258 seconds)
00:03:26*Demos joined #nim
00:06:23Stefan_SalewskiI 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:51flaviuStefan_Salewski: It does work.
00:07:26flaviuDon't get any type declarations mixed up with your functions though, that causes errors.
00:08:51willwillsonflaviu: for your nimlets page, would it be wise to make clear what license the snippets are under?
00:09:20flaviuwillwillson: I do in the github repo, but excellent point. I'll do that.
00:10:54willwillsonsounds good, nice work by the way!
00:11:45flaviuThanks!
00:13:37*brson joined #nim
00:14:38AraqStefan_Salewski, flaviu it's {.callConv: cdecl.}, {.push: cdecl.} only affects proc and not proc types iirc
00:15:00Araqas I said, .push has its gotchas
00:16:01*onionhammer joined #nim
00:27:27*cir0x joined #nim
00:27:30Stefan_SalewskiThanks 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:08flaviuStefan_Salewski: use sed or perl?
00:28:12AraqStefan_Salewski: no, just wait until I fixed c2nim
00:31:01Stefan_SalewskiYes, 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:03Stefan_SalewskiAraq: 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:23Stefan_SalewskiBut of course It would be grat if you can fix c2nim!
00:34:31Araqwell ... you should have started with patching c2nim :P
00:35:24*Trustable quit (Quit: Leaving)
00:35:25fowlwrite it by hand
00:35:30flaviuStefan_Salewski: Piece of cake!
00:35:31flaviuperl -p -i -e 's/(proc[\s\S]*)=\s*$/\1 {.cdecl.} =/g' ./test.nim
00:35:38*Trustable joined #nim
00:36:01Stefan_SalewskiMy current wrappers are at https://github.com/stefansalewski -- and locally I have gdk3 and gtk3. All will need some work still...
00:37:25fowlcairo and glib wrappers already exist
00:38:16Stefan_SalewskiFowl: 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:18flaviuStefan_Salewski: How does that perl command work?
00:39:38Stefan_SalewskiBut of course the old existing wrappers are helpful...
00:39:55flaviuOpps, I messed up slightly. `perl -p -i -e 's/(proc[\s\S]*?)=\s*$/\1 {.cdecl.} =/g' ./test.nim`
00:39:57willwillsonwhat does c2nim miss with the --cdecl switch by the way?
00:40:29Araqwillwillson: apparently proc type definitions
00:41:49Stefan_SalewskiThanks flaviu, I will test it.
00:42:22flaviuStefan_Salewski: I misunderstood, I need to modify it for proc types
00:42:25*Demos quit (Ping timeout: 255 seconds)
00:43:19Stefan_Salewskiflaviu: Dont worry, I will fix it myself...
00:43:58AraqStefan_Salewski: hrm, --cdecl for me also affects proc types
00:44:11willwillsonyeah, I just tested that as well
00:44:15willwillsonand seems to work
00:45:39willwillsonI also can see stefan using the --cdecl switch or the #cdecl directive in his scripts ;-)
00:45:53willwillsoncan't*
00:48:24*bjz joined #nim
00:48:46Araqwillwillson: we simply need MOAR docs that people then happily ignore ;-)
00:50:16Stefan_SalewskiOh, I guess I did indeed miss the --cdecl parameter for c2nim. Sorry :-(
00:50:27flaviuAraq: Sounds like we need docs that are harder to ignore
00:50:46flaviuperhaps if they were more pleasant to use...
00:51:17Araqflaviu: yeah I guess your point is valid
00:52:48AraqStefan_Salewski: however, callConv:cdecl does work reliably and reduces the noise
00:52:49Stefan_SalewskiI 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:19Stefan_SalewskiThat is nice.
00:53:33willwillsonat least you scripted it all :D
00:54:19Stefan_SalewskiBut what will happen when the wrapper file contains same small Nim procs also? Maybe to simulate C define macros?
00:54:27flaviuStefan_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:53Stefan_SalewskiThanks flaviu.
00:55:20AraqStefan_Salewski: so they will be cdecl then, but that does no harm
00:55:59Stefan_SalewskiFine.
01:00:55Araqguys I updated the website again, please give some feedback
01:02:47flaviuAraq: The transition speed on `.headlinks a` is different from that on `.headlinks .active`
01:03:29Araqno idea what that means
01:03:56flaviuAraq: mouse over the header links
01:04:16Araqyes, afaict that's a feature
01:04:28Araqthere is some special-casing in the javascript
01:04:42Araqno idea why it is here, it's filwit's code
01:04:47EXetoCthe snippets sometimes go below that blue line
01:04:49flaviuJavascript shouldn't be necessary for that anyway, but ok.
01:04:56willwillsonhttp://nimrod-lang.org/community.html still has too many links at the top
01:05:41flaviuA templating library for nim is sorely needed.
01:07:00willwillsonalso, your gittip link seems to be cut off (on the same page)
01:07:22willwillsongranted, most people don;t make it down that far ;-)
01:07:41flaviuAlso, the gittip link makes noscript think that I'm being clickjacked
01:07:44Araqwillwillson: the "hidden tabs" are a feature ...
01:07:58AraqEXetoC: they don't for me
01:08:31willwillsonAraq: you mean the home link that gets hidden behind the logo? :D
01:08:48Stefan_SalewskiSorry, on more question: Is it {.push callconv: cdecl.} as used in https://github.com/fowlmouth/nimrod-sfml/blob/master/csfml.nim
01:09:02Araqwillwillson: doesn't for me, but I guess font size can fuck up everything
01:10:47EXetoCbehind the logo?
01:11:04EXetoCmaybe if the font size is like 128
01:11:23willwillsonon http://nim-lang.org/community.html ?
01:12:09EXetoCalmost for me
01:12:15Araqnope, always renders nicely on FF at least
01:12:15EXetoCbut it is closer than on the main page
01:12:30AraqEXetoC: yes because there is one tab more
01:12:41EXetoCyeah
01:12:51willwillsonoverlaps on chromium and firefox for me
01:13:04Araqwell if anybody has a better idea, I'm all ears
01:13:07willwillsondefault font size (as far as I know)
01:13:10Araqwe have too many tabs
01:13:28EXetoCand not for me on firefox
01:14:59EXetoCdo you not let the page use any font?
01:15:30*repax quit (Quit: repax)
01:15:50willwillsonas far as I know I haven't changed any settings
01:16:21willwillsonyou could get rid of the community tab as it is also in "more links"?
01:19:37Stefan_SalewskiAraq wrote: it's {.callConv: cdecl.}, -- or {.push callconv: cdecl.} as used in https://github.com/fowlmouth/nimrod-sfml/blob/master/csfml.nim
01:20:01Stefan_SalewskiSorry can not test.
01:20:15Araqwillwillson: it's not in the list of tabs
01:20:23Araqunless you are on that very page
01:20:37Araqbecause I considered "no active tab at all" more confusing
01:20:48willwillsonI see
01:20:59EXetoCit's odd
01:22:01*flaviu quit (Ping timeout: 265 seconds)
01:24:09*flaviu joined #nim
01:26:14AraqStefan_Salewski: use the .push version
01:26:33Stefan_SalewskiThanks.
01:30:31VarriountIt's too bad we can't give the method machinery the option to use vtables
01:31:28VarriountAraq: What's the benefit of the current method mechanism, besides not requiring a vtable pointer in the target type?
01:31:41Demos_Varriount, multiple dispatch
01:31:46Araqease of implementation
01:31:52Demos_so it dispatches on the "real" dynamic type of each object
01:32:08Demos_without requiring insane visitor stuff
01:32:33VarriountDemos_: Yes, but can't vtables do that as well?
01:32:49VarriountAlso, 'visitor stuff'?
01:32:50Demos_Varriount, not as far as I know, at least not without the visitor pattern
01:33:03Demos_visitor gets you multiple dispatch from single dispatch
01:33:08Araqmeh, vtables can do it, but's quite tricky
01:33:23Demos_but it is a nonlinear growth in code for each additional type to dispatch on
01:33:36Demos_Araq, does any language do it?
01:33:47VarriountWhat about dispatch tables?
01:34:13Araqwhat's your difference between vtable and dispatch table?
01:34:40VarriountNothing, I thought, from what demos said, that they were different things.
01:35:00AraqDemos_: some impls of common lisp perhaps
01:36:39VarriountHm. I don't see what's so insane about dispatch tables.
01:39:13*Trustable quit (Quit: Leaving)
01:40:33Araqwell I'll improve the website if you tell me how
01:40:36Araqgood night
01:40:43*cir0x quit (Ping timeout: 244 seconds)
01:42:45VarriountHm. 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:40VarriountHello cyraxjoe
01:57:51cyraxjoeHi!
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:40onionhammervarriount 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:30Demos_I should work on VisualNimrod over break
03:17:38ldlework
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:38onionhammerDemos_ 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:06dts|pokeballso does nim have a subreddit?
04:32:22Demos_yes, but it is not that active, the fora are where people tend to go
04:37:52dts|pokeballhmmm
04:37:58dts|pokeballmy bot isnt working :/
04:39:22dts|pokeballif 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:25dts|pokeballfor example:
04:39:36*BillsPC joined #nim
04:39:44dts|pokeball,credit dts|pokeball
04:42:23dts|pokeball,join #cplusplus.com
04:43:34flaviudts|pokeball: Try using a debugger or a bunch of print statements
04:43:50dts|pokeballhmmm... alright
04:44:15dts|pokeball,join #learnmath
04:59:26*flaviu quit (Ping timeout: 258 seconds)
05:01:52dts|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:55ldleworkguys, why am I getting qix.nim(52, 26) Error: ambiguous identifier: 'TRect' -- use a qualifier
05:53:59ldleworkhttps://gist.github.com/dustinlacewell/187458538f284d1afb53
05:54:03ldleworkhow 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:54fowlsdl has a trect also
06:55:01fowloh 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:42ldleworkWhen you have a type it says you cannot call that type what does it mean?
08:10:43ldleworkError: expression 'Line' cannot be called
08:10:53ldleworkhow else do you create an instance of your type?
08:18:38ldleworkah 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:06ldleworkyou use addr() to get a ptr
09:40:09ldleworkhow do you get a ref
09:40:14ldleworkoh right
09:40:20*starless quit (Quit: WeeChat 0.4.2)
09:40:35*Matthias247 joined #nim
09:52:37Araqldlework: 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:07Araqand it also cannot be an interior pointer
10:05:34*BlaXpirit joined #nim
10:13:10yeye123moin
10:13:28Araqservus
10:53:46dts|pokeballdoes 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:18ldleworkdts|pokeball: there is peg
11:03:53dts|pokeballhmmm... can i use it for basic string parsing?
11:20:20Varriount_dts|pokeball: Yep
11:20:39ldleworkwelll
11:20:45ldleworkyou can use it for basic string matching
11:20:45Varriount_dts|pokeball: Nim has two regex modules, though only one is majorly used.
11:20:47ldleworknot parsing
11:21:05Varriount_Both are wrappers around C regex libraries.
11:21:12*Varriount_ is now known as Varriount
11:22:28dts|pokeballok, 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:49Varriount'registering'?
11:30:15dts|pokeballregister your nick
11:30:22dts|pokeballoops
11:30:25dts|pokeballwrong term
11:30:43dts|pokeballbasically authenticate your bot with the server or whatever its called
11:30:48dts|pokeballmy brain is fried atm
11:31:11Varriountdts|pokeball: Well, if you want to pick out a term from a string, use pegs or regex
11:31:32dts|pokeballhmmm alright
11:31:34dts|pokeballthanks guys
11:33:34*Trustable joined #nim
11:38:27darkfbleh, 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:35gokr_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:33ldleworkhow do I avoid this duplication? https://gist.github.com/dustinlacewell/5d83c2f81f0cc7d1a420
11:54:32ldleworkwtf it says, /home/dlacewell/dev/nim/nimple/src/controller.nim(13, 0) Error: redefinition of 'pressed'
11:54:43ldleworkhow is it a duplication if it has different type parameters?
11:57:32Varriountldlework: Looks like a bug.
11:58:10ldleworkIts like it ocnsiders them equivalent types
12:04:09gokr_and TKey TMod are distinct?
12:05:53gokr_or are they just aliases for same type?
12:08:35darkfis 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:17darkfor maybe int8 is fine
12:13:38Araqdarkf: well C's char is char or int8 or byte in Nim
12:14:22darkfAraq: int8 works fine (is byte an alias?) -- char would be fine for chars but you can't use integer literals :)
12:14:38Araqbyte is an alias for uint8
12:14:42darkfcool
12:14:52darkfit's very easy to wrap DLLs, thanks for that :)
12:15:41Araqthanks, usually I get the blame that some irrelevant tool doesn't detect the dependencies
12:15:59Araqbecause it uses dlopen instead of staticlib.a linking dances
12:16:44darkfheh
12:16:46Araqstrangely these people never blame Python for doing the same thing
12:17:12darkfthey have to take out their frustration somewhere i suppose
12:18:03Araqthe existence of "devel linking packages" on Linux is absurd IMO
12:24:51ldleworkcan I return nil where a value is expected?
12:25:11Araqdepends on the value
12:25:31ldleworkhas to be ref or ptr?
12:25:54Araqor cstring or pointer or proc
12:26:04Araqor string or seq
12:26:37Araqwhen compiles(isNil(x)) # check if 'nil' is valid
12:26:59Araqthat said, we will eventually replace 'compiles' by a saner mechanism
12:27:18Araqlike 'supportsOp'
12:29:35ldleworkwhat's the idomatic way to return 'n/a'
12:29:42ldleworklike an option type?
12:30:10Araqdepends
12:30:33AraqI don't like option types so Option[T] is not in system.nim
12:30:37darkfhm
12:30:44darkf Error: cannot open 'os'
12:30:54darkfthis is on a freshly compiled build
12:31:01ldleworkAraq: what if you have a function that can return a float or some 'invalid' result?
12:31:15Araqldlework: NaN ?
12:31:21ldleworkAraq: yeah
12:31:24ldleworksomething like that
12:31:35Araqwell NaN has been designed for that
12:31:43Araqso I'd use that
12:32:04ldleworkis that described anywhere?
12:32:10Araqor raise an exception
12:32:24Araqwhy should it be? we don't document how you should write your programs
12:32:31ldleworkwhat?
12:32:39ldleworkis NaN a thing in the language?
12:32:44Araqyes.
12:32:50Araqit is in the manual
12:33:04ldleworkI see it referred to three times and none of them explain it much
12:33:16Araqsystem.NaN
12:33:29Araq NaN* {.magic: "NaN".} = 0.0 / 0.0
12:33:30Araq ## contains an IEEE floating point value of *Not A Number*. Note
12:33:32Araq ## that you cannot compare a floating point value to this value
12:33:33Araq ## and expect a reasonable result - use the `classify` procedure
12:33:35Araq ## in the module ``math`` for checking for NaN.
12:33:45darkfdoes the os module not ship with the compiler or do i need to compile it separately or is my build broken? :)
12:33:58Araqdarkf: your build is broken
12:34:04Araqgotta go, see you later
12:34:05darkfgreat
12:34:07darkfcya
12:36:26*flaviu1 joined #nim
12:37:01*flaviu quit (Remote host closed the connection)
12:38:47darkfah i misread the readme, all good now
12:43:42*bitcrusher joined #nim
12:44:25bitcrusherdoes nim have a selenium library or some kind of web automation?
12:44:39bitcrushertrying to smash my items into gems in for steam
12:44:52bitcrushertried 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:18ldleworkif you have a ref to a float, how can you create a new float and set its value?
12:58:01ldleworkgot it
12:58:23EXetoCcreate a new one? you mean dereference? with []
13:02:58flaviu1The 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:11Varriountbitcrusher: No, nim doesn't have any web automation... yet.
13:40:19*vendethiel left #nim (#nim)
13:43:13dom96We lost half our users :(
13:44:56gokrBut... they may come back on monday when they get back to their work machines
13:45:21flaviuI wouldn't really count those people as users if they don't participate.
13:45:24ldleworkHas 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:03EXetoCldlework: nice sound effects
14:12:19ldleworkEXetoC: I'm remaking that in Nim right now
14:12:32*nimnoob joined #nim
14:13:10ldleworkfar more challening than I imagined
14:18:08EXetoCyeah?
14:19:37*pafmaf_ joined #nim
14:23:03ldleworkyeah, 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:42ldleworkdamn precision errors
14:38:19*gour_ joined #nim
14:40:03ldleworkah 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:20Araqbitcrusher: 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:27Araqdom96: I count 2 show stopper bugs assigned to you, 1 to me
15:07:46dom96Araq: I count 1 exam tomorrow.
15:07:59Araqlol? it's almost christmas
15:08:17Araqhow come you still have exams?
15:08:20flaviuAraq: That means finals
15:08:45EXetoCbut that's less important, right?
15:09:36flaviudom96: Studying is for plebs :P
15:09:41EXetoC5 seconds to build and run a vibe.d project. how annoying
15:13:26*willwillson joined #nim
15:14:10EXetoCspeaking 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:20flaviu/
17:52:52flaviuoops
17:55:00flaviuBtw, the topic is a bit out of date - it still has a couple "nimrod"s
17:56:35flaviuAlso, 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:37flaviuhttp://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:21dom96flaviu: That URL is for my own use so *shrug*
18:17:14VarriountAraq: Uploading tests works, however I need some input.
18:18:03VarriountAraq: Do you want test results to be named by commit, or by build number (or both)
18:18:04flaviudom96: Btw, build farm is at http://nim-lang.org:8010/waterfall
18:18:44dom96Nope, the buildbot is at http://buildbot.nim-lang.org/ ;)
18:19:02dom96That port shouldn't be allowed.
18:19:30flaviuBtw, the bitly address got chopped off.
18:19:39dom96shit
18:19:52flaviuYou could get rid of all the `http://` and make some space
18:20:08dom96Now I can't remember what it was...
18:20:19flaviubit.ly/1aEJ2xj
18:20:40flaviugit.io/gHZGCg is also an option, but do what you want.
18:21:16Varriountdom96: Well thanks for telling me. :P
18:21:24dom96Varriount: I did tell you.
18:22:52repaxbitly supports https
18:23:56flaviurepax: Yeah, but people often use it to get around filters for malicious links. That's where it's insecure reputation comes from.
18:29:53repaxif 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:15VarriountHuh, 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:26flaviuSorry 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:11flaviuThat way someone who wants access to the data can access it programaticlly without scraping html.
18:44:37Varriountflaviu: Good idea. I'll do that too.
18:45:17VarriountI 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:38nimnoobcould i ask a syntax question here?
19:06:00Varriountnimnoob: Of course.
19:06:08nimnoobThanks
19:07:00EXetoCthat's allowed now?
19:07:39VarriountEXetoC: It's always allowed for everyone (except you ;3)
19:07:52EXetoCoh
19:08:32nimnoobhttp://pastebin.com/mHmw4wzg
19:08:44*flaviu joined #nim
19:08:48nimnoobi am trying to add a method to a generic type
19:09:00nimnoobgetting a ')' expected error
19:10:38EXetoCnotice the difference between those two parameters
19:10:49EXetoCyou got the order wrong and missed a colon
19:11:06nimnoobomg
19:11:27nimnoobthanks. i am sorry for that
19:11:48nimnoobsleeping baby on my chest is cutting off my air supply
19:12:13EXetoCno need to blame that. it's hard to get used to it :p
19:12:21VarriountThat's happened to me before.
19:13:15nimnoobhalf 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:12Varriountdom96: So, has your semester ended yet?
19:36:28dom96Varriount: nope
19:39:11Varriount:<
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:01Araqah Varriount thanks!
22:56:12Araqfinally I can look at the test results
23:03:26*starless quit (Quit: WeeChat 0.4.2)
23:05:35VarriountAraq: Well, I'm still sorting out teething troubles.
23:06:02VarriountIt's hard to debug when 'testing' means completing an entire build cycle, which can take over 45 minutes.
23:06:16Araqlol
23:06:39Araqyou know there at least 3 methods to cut the build times
23:06:42*StefanSalewski joined #nim
23:07:38VarriountAraq: ?
23:07:54Araq1. simply run the tester for a single 'category' like so: tester c templates
23:08:19Araq2. move several test dirs to something else so the tester doesn't find them
23:08:52Araq3. mark long running tests with 'disabled: true' in the discard """ ... """ section
23:09:46VarriountAraq: #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:15VarriountAre you sure moving test dirs won't cause errors?
23:10:49Araqyou shouldn't invoke 'koch test', it's just calls the tester anyway with 'all' or similar
23:11:59AraqVarriount: well yeah, some dirs get special treatment
23:13:08StefanSalewskiWarnings for deprecated proc names are given twice -- seems to be a minor bug? See this 4 lines program:
23:13:14StefanSalewskiproc te(i: int): int =
23:13:31StefanSalewski 0
23:13:48StefanSalewski{.deprecated: [test: te].}
23:14:04StefanSalewskidiscard test(1)
23:14:27StefanSalewskit67.nim(7, 8) Warning: use te instead; test is deprecated [Deprecated]
23:14:30StefanSalewskit67.nim(7, 8) Warning: use te instead; test is deprecated [Deprecated]
23:14:41StefanSalewskiBye...
23:14:46*StefanSalewski quit ()
23:14:54Araqbut only a few and they are listed in https://github.com/Araq/Nimrod/blob/devel/tests/testament/categories.nim
23:16:37Araqhrm 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:26VarriountUhm... What was that?
23:19:55VarriountAraq: 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:28VarriountPlus, if the boot or testing process has to change, I don't have to edit the build steps
23:21:02Araqwell you only have to tell me to keep it backwards compatible and then I do that
23:23:05VarriountAraq: Speaking of which, is there a way to make enums that can be edited without breaking backwards compatibility?
23:23:35Araqyou can make it a 'distinct int' instead
23:23:40Araqand then have consts
23:23:48Araqworks when you didn't use .pure enums
23:23:59Araqbut hrm, no
23:24:14Araq'case' demands exhaustiveness either way
23:25:20Araqso. nope, there is no way.
23:25:22*ARCADIVS quit (Quit: ARCADIVS)
23:25:54*dts|pokeball quit (Quit: Leaving)
23:26:06VarriountToo 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:09VarriountAraq: Oh yeah, I read about this hot-patching technique, and wondered if it could be used in nimrod
23:28:15VarriountApparently, in Windows, certain internal procedures have 8 no-op instructions right after the function start point
23:29:01VarriountWhen 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:46VarriountI thought it was quite clever.
23:33:06*irrequietus quit ()
23:33:06Araqyup, but iirc Linux does similiar stuff
23:33:55EXetoChow often is that doable?
23:36:40VarriountEXetoC: What do you mean?
23:37:02enurlyxI think the os can override the jump again and again?
23:37:26Varriountenurlyx: Yes, it can just write over the same area
23:42:15*repax quit (Quit: repax)
23:44:37enurlyxVarriount: But is not the code like static data in a read only section? How to override then, if not beeing the os?
23:45:51Varriountenurlyx: Well, the only thing that prevents writing to that section is memory page settings.
23:46:17Varriountenurlyx: The code is loaded into memory pages, and then the pages are marked as read only.
23:46:51VarriountThing is, the OS usually provides ways of marking pages as writeable again.
23:49:16enurlyxVarriount: Ah, ok that makes sense then.
23:53:09Varriountenurlyx: I'm trying to find the windows API that allows it. I't may only be available to driver-level programs though.
23:53:59Varriountenurlyx: 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:12VarriountActually, 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:45VarriountAh, here we go. The procedure is named VirtualProtect - http://msdn.microsoft.com/en-us/library/windows/desktop/aa366898(v=vs.85).aspx