<< 09-12-2013 >>

00:00:35EXetoCit should run properly now that you've fixed your audio system
00:01:30EXetoCOrionPKM: it does include everything that is in the system directory
00:02:16EXetoCmost of it anyway, depending on what is defined and what have you
00:03:03fowlKooda, that cant work
00:03:24fowlKooda, its should throw an error though
00:03:27KoodaYep
00:03:40KoodaI was expecting this to fail at compile time
00:03:47VarriountKooda, whatcha working on?
00:04:06*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
00:04:59Koodafowl: does this mean I have one more bug report to do? /o\
00:05:22KoodaVarriount: just messing around with the language ^^'
00:05:43VarriountKooda, have fun. It helps if you can think like Araq
00:05:50KoodaHeh
00:06:09KoodaI don’t think like him, I found one bug per day of use ^^
00:06:32EXetoCfowl: as in not currently?
00:07:25VarriountKooda, when you take into account that mainly Araq, plus one or two others, have developed nimrod (which is quite complex, as languages go) bugs shouldn't be a surprise
00:08:20fowlKooda, yes
00:08:24KoodaVarriount: sure! I don’t really care, in fact I like finding bugs, it helps :)
00:10:08BitPuffinEXetoC: oh, forgot to check! :D
00:10:56fowlEXetoC, no, unlike an array, each index of a tuple can be a different type
00:11:43EXetoCfowl: of course you could check that constants are used in the for loops etc, but I don't know if it's too magic
00:11:47KoodaOh, maybe I just use an array here ^^'
00:11:53KoodaI should just*
00:12:16KoodaEXetoC: yep, in fact I was expecting the compiler to unfold the loop for me ^^'
00:14:00EXetoCok
00:14:42KoodaOR throwing an error at compile time. :)
00:14:51EXetoCKooda: or you can cast when needed
00:15:10Kooda?
00:15:48KoodaFrom array to tuple?
00:17:28EXetoCinstead of using an array, if it makes sense for the interface. I focus on usability first, so my matrix type is tuple[x, y, z, w: TVec4], and then I just cast to an array of floats when needed. easy as pie
00:17:32EXetoCor cake
00:17:51KoodaHeh
00:18:38KoodaI want to keep the fields names though, and it’s just 4 (evil-unsigned) integers :)
00:23:49*dom96_and quit (Quit: Bye)
00:25:04EXetoCok, but only this one time
00:25:29KoodaWhat do you mean?
00:25:40BitPuffinEXetoC: you forgot the public domain thingy :D
00:25:57EXetoCbah
00:26:17BitPuffinEXetoC: add a comment explaining that it is in the public domain and refer to COPYING.txt and add to you commit message:
00:26:34BitPuffinThe author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
00:26:54BitPuffinanyways
00:26:57BitPuffinI have to sleeep now
00:26:59BitPuffingoodnight!
00:27:03Kooda’night! :)
00:27:11*brson joined #nimrod
00:27:14BitPuffinsee you guys
00:27:16*BitPuffin quit (Quit: WeeChat 0.4.2)
00:30:58boydgreenfieldNewbie question: Can any one point me to a either the best docs/tutorial on interfacing with C and/or a good example implementation module? I'm trying to import/use a C implementation of the MurmurHash3 hashing algorithm (vs. reimplementing it), and have not yet figured out the best place to start w/ regards to FFI, the .compile, .importc, etc. pragmas. Many thanks in advance for the help!
00:31:25OrionPKMI think murmur is already wrapped on babel
00:32:52*webskipper quit (Ping timeout: 264 seconds)
00:32:54boydgreenfieldOh really? I'll look to that implementation first then...
00:33:30boydgreenfield(Ah, that's in pure Nimrod though)
00:34:36boydgreenfield(And it's only a 32-bit implementation)
00:43:10fowlboydgreenfield, heres an example of a small wrapper https://github.com/fowlmouth/nim-termbox/blob/master/termbox.nim
00:43:29boydgreenfieldfowl: thx!
00:47:55OrionPKMfowl i like how the file ends with Magnitude's catch phrase
00:48:00OrionPKM"Pop pop!"
00:48:42fowllol
00:59:22joelmothis is not working for me, should it work: nimrod idetools --eval 'echo("hi")'
00:59:38joelmocommand line(1, 1) Error: argument for command line option expected: '--eval'
01:00:51joelmoi use 9.2
01:01:36fowluse : after --eval
01:03:28joelmoseems to be working but where does the output go
01:15:24*xenagi joined #nimrod
01:24:49boydgreenfieldAnother newbie question (sorry!): var x = 14688674573012802306'u64 (which is > 2**63, but < 2**64)
01:25:02boydgreenfieldgives me the following error: "bloom_filter.nim(113, 10) Error: number 14688674573012802306 out of valid range"
01:25:23boydgreenfieldHow should I input a number > 2**63 and < 2**64 if I want it in a test case?
01:32:42*q66_ joined #nimrod
01:35:06Varriountboydgreenfield, is there any specific reason you need a number that large?
01:35:38boydgreenfieldVarriount: Not really... I just have a hash function that outputs 2 64-bit unsigned integers
01:35:55boydgreenfieldVarriount: So I suppose I got the 1/64 chance test case that is outside of the range of a signed 64-bit int
01:36:02*q66 quit (Ping timeout: 246 seconds)
01:37:04Varriountboydgreenfield, unfortunately, we don't have any bignum implementations at the moment.
01:37:39VarriountAnd without seeing your code, I don't know what changes could be made to alleviate the problem
01:37:52boydgreenfieldVarriount: No worries. Would you suggest just taking it as a signed 64-integer and then taking the absolute value? – I don't need the additional hash space.
01:38:12VarriountWhats the source of your integer?
01:40:05boydgreenfieldMurmurHash3 hash function
01:40:28VarriountAnd it gives you an unsigned int?
01:40:30boydgreenfieldthe current C code I'm wrapping just outputs an unsigned 64-bit integer
01:41:02Varriountboydgreenfield, and you are using it to do..?
01:41:20boydgreenfieldVarriount: Good hash function for a bloom filter implementation
01:42:11VarriountFirst off, my knowledge of such things is mostly theoretical, but couldn't you just cast the unsigned int to a signed one?
01:42:33VarriountI mean, the only difference between the two is how the data is interpreted.
01:43:53boydgreenfieldNo, absolutely -- I just wasn't sure if it was worth having negative indices to the bit array (i.e., getting cast to a negative integer) vs. having a slightly smaller hash space.
01:44:10boydgreenfieldI was really just curious because I was trying to assert hash_output == big_unsigned_integer
01:44:15VarriountI really couldn't say.
01:44:34boydgreenfieldand I got that error message, which I found somewhat cryptic given that it's a valid uint64
01:44:47VarriountOne moment..
01:44:52*brson quit (Ping timeout: 264 seconds)
01:46:44*brson joined #nimrod
01:51:24Varriountboydgreenfield, this is probably a stupid question, and I should have realized this before, but isn't an unsigned int supposed to go up to 18,446,744,073,709,551,615?
01:51:36Varriount*64 bit unsigned int
01:52:08boydgreenfieldYep
01:52:13boydgreenfieldThat's why I found it odd.
01:52:23boydgreenfield14688674573012802306 < 18446744073709551616 (2**64)
01:52:30VarriountOr wait.. *looks at integer page on wikipedia*
01:52:36boydgreenfieldbut > 2**63 (9223372036854775808)
01:52:42boydgreenfieldI may have this wrong too... :)
01:53:25boydgreenfield(It also doesn't really matter, I've just cast them as int64s, which also have mod and other various operations implemented for them which are missing for unsigned ints)
01:53:53Varriountboydgreenfield, so here's an odd thing, which I think is a bug in nimrods range checking
01:54:59*ics joined #nimrod
01:55:51Varriountboydgreenfield, I think this is a bug.
02:04:05boydgreenfieldVarriount: Got it. Ok -- now for another silly question. Is there a way to turn off overflow checking / exception handling for a function (maybe a pragma?)? I have something that may end up doing 2**63 * 4, for example, which overflows but I really don't care that it overflows as I take the final answer mod some_value_less_than_2**64. But I'd prefer not to have to take the modulus multiple times on various inputs. Again this
02:04:05boydgreenfieldrelates to hashing.
02:04:20boydgreenfield(EOverflow specifically)
02:04:22Varriountboydgreenfield, nimrod --advanced
02:04:38Varriountthere's a list of runtime checks that you can turn off
02:04:53Varriountnimrod c --rangeCheck:off should do it
02:04:55boydgreenfieldCan one do it for a specific "unsafe" function though?
02:04:59boydgreenfieldvs. the whole program?
02:05:06VarriountI think so..
02:05:27Varriountboydgreenfield, http://nimrod-code.org/manual.html#compilation-option-pragmas
02:05:36Varriountboydgreenfield, congratulations, you found a bug.
02:05:37boydgreenfieldThx, will look.
02:06:25VarriountNimrod is doing static range checks on integers, and is checking them against the int64 range
02:06:40*Varriount gives a cookie to boydgreenfield
02:06:45boydgreenfieldfound it.
02:06:50boydgreenfieldmm thx!
02:10:17Varriountboydgreenfield, you use the negative indices feature of arrays?
02:10:24fowlboydgreenfield, you can {.push checks: off.} in your function
02:10:51boydgreenfieldfowl: having trouble getting that work at the moment. Can I only do it for a proc? (vs. isMainModule code)
02:11:26VarriountYou can't attach it as a procedure pragma?
02:12:25Varriountboydgreenfield, put {.push checks:off.} at the start of your procedure body, and then {.pop.} at the end of the body
02:12:41fowli just tried it
02:12:48fowlthe push/pop need to be outside the function
02:12:56Varriount-_-
02:23:14boydgreenfieldCool got it working. Thanks both!
02:32:12*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
02:32:13*fundamental quit (Ping timeout: 246 seconds)
02:32:52boydgreenfieldIncidentally the behavior in the isMainModule code piece is a bit weird to me (but maybe this is by design). E.g., {checks: off} disables assertions successfully in a isMainModule block but still raises EOverflow exceptions. Gist example: https://gist.github.com/boydgreenfield/7866606
02:33:50Varriountboydgreenfield, bug report?
02:34:36Varriountboydgreenfield, also, see if --implicitStatic:off helps any
02:34:51boydgreenfieldVarriount: Sure, happy to add unless it's only supposed to be for procs (but then I guess there's mb a documentation shortfall)
02:35:11boydgreenfieldVarriount: same.
02:38:09VarriountYou know, if I didn't have to go to classes, I would be happy to fix these errors.
02:38:40VarriountIt's like, they call out to me, crying for someone to fix them.
02:42:30boydgreenfieldI'll take a look at where they're getting raised and see if I can generate a PR... but that is *somewhat* unlikely given I've only been playing around w/ nimrod for a few days
02:44:44fowllol
02:45:41*fundamental joined #nimrod
02:47:53boydgreenfieldVarriount: I'm on 0.9.2, were you seeing the "invalid number" bug for unsigned 64-bit integers over 2**63 on 0.9.3 as well? (e.g., 9223372036854775798'u64)
02:48:11boydgreenfieldWant to confirm before opening GitHub issue and trying to track down underlying issue.
02:52:54Varriountboydgreenfield, I run the nimrod using the master branch. Yes, I see the range check issue
02:53:30boydgreenfieldGot it. Tracked down where it's getting raised in the lexer, but there's a somewhat more complex issue as the TKUInt64 type isn't implemented
02:53:51boydgreenfieldso I'll open an issue but can't do a PR w/o really getting up to speed on how the lexer works
02:54:10Varriountboydgreenfield, well, if you can say that "the TKUInt64" type isn't implemented, then that's a great help
02:54:49VarriountIt's likely that you could copy whatever code handles the other number literals, and modify it to fit, if you wanted to.
03:05:58boydgreenfieldWell, I'll give it a shot in the next day or two hopefully.
03:06:27boydgreenfieldissue in the meantime as a flag for anybody experiencing the same issue: https://github.com/Araq/Nimrod/issues/723
03:07:32Varriountboydgreenfield, thanks.
03:07:54boydgreenfield(And this is where it's unfortunate that I never took any CS classes in college)
03:07:57boydgreenfieldVarriount: np.
03:10:48VarriountI have finals for the next two weeks.
03:11:28VarriountAnd of course, my math professor just gave us a test on something we learned 1 class (2 days) beforehand
03:17:08OrionPKMso its fresh in your mind
03:17:27fundamentalthat sounds pretty normal
03:18:00boydgreenfieldVarriount: FYI if you still want to take a look at that Bloom filter implementation, it's fairly usable at this point: www.github.com/boydgreenfield/nimrod-bloom
03:20:12*ics joined #nimrod
03:20:48boydgreenfieldand *very* fast now
03:21:19VarriountOrionPKM, fundamental, let me restate that. SHe tried to teach us a major section on conics in 45 minutes.
03:21:43VarriountAnd the professor got her own questions wrong half the time.
03:22:48fundamentalVarriount: heh, a few years back I saw a professor get sacked after students started skipping her sections and going to another professor's time slot. usually attempted teaching is better than "figure it out on your own as it will be on the exam"
03:24:17*Varriount grumbles
03:24:41fundamental:p
04:07:28*xenagi quit (Quit: Leaving)
04:28:02*brson quit (Quit: leaving)
04:31:20*DAddYE joined #nimrod
04:31:20*DAddYE quit (Remote host closed the connection)
04:31:26*DAddYE joined #nimrod
04:37:42*DAddYE quit (Remote host closed the connection)
04:38:09*DAddYE joined #nimrod
04:40:29*DAddYE quit (Read error: Connection reset by peer)
04:40:52*DAddYE joined #nimrod
04:41:03*DAddYE quit (Remote host closed the connection)
04:41:10*DAddYE_ joined #nimrod
06:08:20*isenmann joined #nimrod
06:26:33*hoverbear quit (Quit: Hibernating, be back soon.)
06:47:46*boydgreenfield quit (Quit: boydgreenfield)
07:16:34*boydgreenfield joined #nimrod
07:46:02*XAMPP_ quit (Ping timeout: 240 seconds)
07:49:37*webskipper joined #nimrod
07:54:39boydgreenfieldAnother newbie question if folks are around: adding the -d:release flag to the compiler simply creates a non-debug build? Is that ever going to optimize away work if the answers aren't being used? (like some optimization flags on certain C compilers?) Curious because I'm seeing a ~5x speedup which... is either really awesome or concerning, but I'm not sure what to think.
07:55:01PortablePuffinfundamental: you probably want to be running the git version!
07:55:41PortablePuffinboydgreenfield: It does optimizations
07:57:07boydgreenfieldPortablePuffing: I guess my more specific question is how it compares to various C compiler -O levels. I'm essentially curious if the 1M lookups I do in this test are getting (partially) optimized away: https://github.com/boydgreenfield/nimrod-bloom/blob/master/bloom.nim
07:57:32boydgreenfieldBecause timing went from ~1.3secs to ~0.25 secs
07:57:47PortablePuffinwho's PortablePuffing?
07:58:04boydgreenfield(It looks good given the counter... but it's just an astonishing speedup)
07:58:12boydgreenfieldsorry :). Puffin*
07:58:19PortablePuffinanyways I think you can see which flags are passed when compiling
07:58:22PortablePuffin:D
07:58:37boydgreenfield(too used to typing "ing" )
07:58:57PortablePuffinBut iirc one of the flags is -O3
08:00:03fowlboydgreenfield, there is also the optimizing flag -O
08:03:33boydgreenfieldHmm.
08:04:24fowlanother thing you lose is stacktraces and assertions
08:04:52boydgreenfieldYep seeing that in the docs now.
08:05:32boydgreenfieldOk, wow. I *think* the C compiler is just doing some terrific work in this case (makes some sense given the low-level nature of the code).
08:09:00boydgreenfield(I'm coming from Python-land, so it's just a rather startling difference to pass a flag and get a 5x win)
08:14:10PortablePuffinhaha
08:14:53PortablePuffinwell look at the linea that start with, "gcc" (or whichever compiler you're using) to see the flags
09:01:09*PortablePuffin quit (Read error: Connection reset by peer)
09:05:47*PortablePuffin joined #nimrod
09:06:05NimBotnimrod-code/packages master 360c363 boydgreenfield [+0 ±1 -0]: Add bloom package... 2 more lines
09:06:05NimBotnimrod-code/packages master a008a44 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Merge pull request #41 from boydgreenfield/patch-1... 2 more lines
09:22:09webskipperIs there a difference between nimrod installer and build.bat in zip package ? Because the build.bat can't find my gcc....
09:22:26webskipperno probs with prev nimrod version installed by the installer
09:23:44Araqyeah something is broken, I know
09:23:52Araqneed to rebuild the zip, I know
09:23:56webskipperoh I see mingw is not in
09:25:01webskipperargh win is pain :D
09:26:28webskipperI copied the dist folder, seems to work now
09:36:31*ccedrik joined #nimrod
09:38:26*CarpNet joined #nimrod
09:39:37Araqhi ccedrik welcome
09:40:38fowlAraq, i want to rename existsFile to fileExists
09:40:58Araqfowl: -.-
09:41:11AraqdirExists too then?
09:41:16fowlyes
09:41:27AraqI suppose I can live with an alias
09:41:28fowlits more english
09:41:50Araqit's inconsistent though
09:42:02fowlinconsisten with what
09:42:39*promswet quit (Remote host closed the connection)
09:42:53Araqverb+noun is the common way of naming procs, "hasKey"
09:43:44AraqcreateDir
09:44:38fowlexists is a different kind of verb
09:44:47Araqperhaps we should name it "isFile" and "isDir"?
09:45:40KoodacheckForThatDirToExist :x
09:47:11fowli dont like isfile/isdir >_>
09:47:16Araqmaybe our naming convention should forbid "exists" as a verb :P
09:47:53webskipperI propose to put the link to http://build.nimrod-lang.org/ on http://nimrod-lang.org/download.html
09:48:12fowlin ruby its File.exists?("somefile")
09:48:42*radsoc joined #nimrod
09:50:03Araqwebskipper: well in theory releases are more stable than the github version
09:50:55fowlthats bs i've never seen instability on github
09:51:30Araqfowl: oh really? git version doesn't compile keineschweine anymore ;-)
09:51:58Araqin fact, I'm working on that right now
09:52:00fowlthats probably my fault
09:52:13Araqwell it's a test, so it doesn't change
09:52:15fowli noticed it hangs up on endians
09:52:31fowl(the one from fowlmouth/keineschweine)
09:52:42fowloh yeah i want to add swapendian16() to endians
09:52:54Araqwhat's that?
09:53:13fowllike the other swap endian functions, for 16 bits
09:54:39Araqalright go ahead
09:54:59AraqfileExists is fine with me too, but make it an alias for existsFile please
09:55:20fowlok
09:55:21webskipperAraq: let the user choose. it makes sense to link the unstable releases too.
09:57:23Araqwebskipper: ok, fair enough
09:57:33Koodafowl: speaking of swapendian*, I checked the implementation, I think it’s possible to do better. Modern CPU have byte swap instructions. (that’s why I use ntoh(s|l) instead)
09:58:44webskipperAraq: ty
10:06:16AraqKooda: that code isn't optimized at all
10:10:19webskipperHave we @annotation annotations in nimrod ?
10:11:43Araqwe have {.pragmas-}
10:12:02Araqand you can create your own and process them in a macro
10:13:32fowllol the documentation for swap says that it's faster than tmp = a; a = b; b = tmp; but that is what swap() does
10:13:51KoodaxD
10:15:01*ccedrik quit (Remote host closed the connection)
10:16:00Araqfowl: that depends on the type though. It surely is faster for strings :P
10:16:04*boydgreenfield quit (Quit: boydgreenfield)
10:17:40webskipperbtw: is there a hardware coded swap instruction by intel / amd ?
10:18:00webskipperI guess it makes sense because lot of algs use swap()
10:20:54Araqhttp://x86.renejeschke.de/html/file_module_x86_id_21.html
10:21:34webskipperaah, nice - BSWAP :D
10:22:50webskipperseems to change the order only
10:23:57webskipperhttp://en.wikipedia.org/wiki/Compare-and-swap
10:24:41webskippersince 80486 ^^
10:25:20Araqwell compare-and-swap is something entirely different
10:31:47webskipperhttp://en.wikibooks.org/wiki/X86_Assembly/Data_Transfer#Data_swap
10:32:21*ics quit (Ping timeout: 245 seconds)
10:34:06*ics joined #nimrod
11:04:37*q66_ is now known as q66
11:56:03*Varriount quit (Read error: Connection reset by peer)
11:56:32*Varriount joined #nimrod
12:15:40*webskipper quit (Read error: Connection reset by peer)
12:16:17*DAddYE_ quit (Remote host closed the connection)
12:45:46*BitPuffin joined #nimrod
12:59:07EXetoCBitPuffin: now my example branch showing up
12:59:38EXetoCand it claims that no changes have been made when I try to create a pull request
12:59:45dom96hello people
13:00:14EXetoChi
13:04:25EXetoC*doesn't show up
13:05:15EXetoCsomeone said that the branch had to be closed so that it'd accept the commit. do I have to re-open it now?
13:06:39BitPuffinahoy EXetoC
13:06:53BitPuffinEXetoC: who said that and what woot?
13:06:59BitPuffinEXetoC: re-open it if you closed
13:07:29BitPuffinhey dom96
13:07:30EXetoCI tried to find a way to commit only a message. so is that what it takes? closing and opening
13:08:19BitPuffinEXetoC: maybe, but you can make a new commit anyway, putting a comment in the source file about that it's in the public domain and see COPYING.txt for details. And put in the commit message the thingy you know
13:08:27BitPuffinI have no idea if you need to reopen or not
13:08:29BitPuffinmaybe you do
13:12:43fowlyou should just push to the branch to add to the PR
13:12:54fowlthen again, idk what yall talking about
13:14:33EXetoCfowl: This is for a repository in mercurial
13:14:33BitPuffinfowl: we are talking about hg and bb
13:17:51fowlo
13:18:22BitPuffinp
13:26:33EXetoCthe example is gone. can't be bothered with this right now
13:27:35BitPuffinEXetoC: I still see the PR lol
13:27:49BitPuffinah
13:27:52BitPuffinyou deleted the repo
13:27:54BitPuffinlol
13:28:21BitPuffinwhy did you do that
13:31:54BitPuffindom96: maybe me or someone should create an aur pkg for libtarsnap
13:32:00BitPuffinto make it easy to use scrypt
13:32:19dom96why is libtarsnap required?
13:32:47EXetoCthat doesn't even seem to be a thing
13:33:00BitPuffindom96: because scrypt is in there
13:33:48fowlaur is good
13:34:07fowlisnt there a scrypt impl in a crypto lib already covered though
13:35:01BitPuffinfowl: ? like what
13:35:39*zielmicha joined #nimrod
13:36:30fowlidk im not a crypto-monkey
13:37:11xlqI don't think scrypt is very popular. (Maybe you're thinking of bcrypt, which is more popular.)
13:37:13BitPuffinfowl: what kind of monkey are you then
13:37:30fowlthe one that never gets anything done :(
13:37:40BitPuffinhe's probably confusing it with bcrypt yeah
13:37:48BitPuffinscrypt is much newer
13:38:36fowlwrite something useful
13:38:39fowllike nimcoin
13:38:49fowlpremine 10,000 of them
13:38:51fowlget rich later
13:39:41BitPuffinno u
13:42:45*zielmicha quit (Ping timeout: 265 seconds)
13:42:47BitPuffinno EBadParameters ?
13:43:23EXetoC?
13:43:41*zielmicha joined #nimrod
13:45:04BitPuffinEXetoC: yeah like if someone provided bad data
13:45:12BitPuffinlike an id for something that doesn't exist
13:48:21Araqthere is EInvalidValue
13:49:03Araqwhich has the same fuzzy feeling
13:49:04EXetoCI saw that one, but thought the description was very specific
13:49:24Araqlol? how can "invalid value" be specific?
13:49:37BitPuffinEInvalidValue = object of ESynch
13:49:38BitPuffin is the exception class for string and object conversion errors.
13:49:58BitPuffinthis has nazing to do with conversions
13:50:03Araqdamn
13:50:10Araqmy docs disagree with me
13:50:15BitPuffinhahaha
13:50:17BitPuffin:D
13:50:21BitPuffinwell you could always update the docs
13:50:29BitPuffinit's an appropriate error I think
13:51:17Araqwell I don't think the stdlib cares about this piece of documentation but I dunno
13:51:17BitPuffinin fact I'm gonna use it here
13:51:21BitPuffinso you better ;)
13:56:03fowlEInvalidValue - to be used for anything except invalid values
13:56:21BitPuffindamn it
14:09:03*Varriount quit (Ping timeout: 260 seconds)
14:11:13EXetoCBitPuffin: I deleted the branch because I had no clue what was going on, so I just wanted to start from scratch
14:11:57EXetoCand then vim failed me. maybe it doesn't even cache small files -.-
14:13:53BitPuffinEXetoC: haha :D
14:13:56BitPuffinnoob
14:13:58BitPuffinjk
14:19:51BitPuffinEXetoC: you'll figure it out :D
14:23:39BitPuffinEXetoC: easy peasy
14:26:07BitPuffinEXetoC: tbh I've never done a PR with hg before
14:26:17*xlq left #nimrod (#nimrod)
14:26:18BitPuffinbut it should be straight forward most likely :D
14:29:18EXetoCso how much experience *do* you have? must be a specific feature set of hg that you think is better
14:31:51BitPuffinEXetoC: Well I know how to do the same things or more that I know in git and have found hg to just do everything in a way that makes more sense
14:31:55BitPuffinand I came from gitt
14:32:09BitPuffinit's not like I started with hg and got grumpy at git because it's different
14:36:35BitPuffinone thing to keep in mind is hg branch != git branch
14:36:42BitPuffinhg bookmark ~= git branch
14:37:52BitPuffinwhat
14:38:04BitPuffinsince when does statements from templates need to be discarded
14:38:11BitPuffins/from/in/
14:38:37BitPuffinthis seems fishy
14:40:13EXetoCis there a value at the end?
14:40:37BitPuffinshouldn't these be best friends? https://gist.github.com/BitPuffin/3f02d0488c67d169124c
14:41:09BitPuffinAraq: yell at me!!
14:41:32EXetoCdoes getRow return anything? and why templates?
14:41:57fowlgah getfromwhere
14:42:23fowlim going to write a smalltalk-to-nimrod language :p
15:01:01*noam_ joined #nimrod
15:01:29*noam quit (*.net *.split)
15:03:41*gradha joined #nimrod
15:17:05PortablePuffinexeteoc: yeah they do
15:17:19PortablePuffinexetoc: because why not :D
15:18:58EXetoCmore forced inline madness? :p anyway, if it returns a value then it has to be discarded
15:20:06EXetoCno wait
15:21:20EXetoCtoo few details, and that doesn't even compile on its own
15:22:24EXetoCbut the value returned on the last line isn't discarded, so it should work. just use functions and see what happens
15:22:55*tylere joined #nimrod
15:24:00EXetoCand if for whatever reason you don't want to use functions, try to change the return type from expr to some actual type
15:24:19*fntzr joined #nimrod
15:25:30PortablePuffinEXetoC yeah that's what I considered
15:25:42PortablePuffinit's just sqlite
15:25:50PortablePuffinit should work
15:28:04EXetoCwhat should?
15:28:38EXetoCnvm
15:30:05KoodaIf somebody has the time someday, I would really need an explanation about integers in nimrod ^^'
15:34:58tylereKooda: What about them?
15:35:11tylereThey seem pretty garden-variety to me
15:37:10KoodaI keep hurting myself with them x)
15:38:42EXetoCwhy?
15:40:56EXetoCThe differences from C for example that I can think of are the fact that overflow checking is supported, and that unsigned operators need to be imported explicitly
15:43:30Koodaunsigned integers are completly incompatible with signed ones
15:45:40EXetoCunsigned operations are so rare that I'm not bothered by having to perform an explicit conversion to signed
15:45:49EXetoCor the other way around
15:46:39KoodaIt’s not rare in my case.
15:46:42EXetoCmaybe it's a common use pattern for you, but if it's really necessary then you must be writing really low level code
15:46:52KoodaI’m working with memory locations and offsets
15:47:02KoodaI am
15:47:25EXetoCstill, it's just 5-ish additional characters in some cases
15:48:43EXetoCx + y.int8 ... x.uint8 + y
15:49:27EXetoCI don't recommend trying to shorten it, but you could if you really wanted to
15:50:05EXetoCunless this isn't the issue. if not, please elaborate
15:53:07tylereSo how far are we from cutting a 0.9.3 release?
15:53:50OrionPKM0.9.4 release
15:54:07gradhatylere: christmas|hannukah
15:54:10tylerecool
15:54:11EXetoCI've never heard of an ETA
15:54:16EXetoCrly
15:54:22tylereso odd minor vers are dev versions?
15:54:23gradhaEXetoC: note how I didn't mention year
15:54:24tyleremakes sense
15:54:28EXetoCtrue
15:54:39OrionPKMgradha, hannukah is already over ;P
15:54:41dom96Before Christmas I think.
15:55:02gradhaOrionPKM: you mean, there's not going to be any more hannukahs? Poor people
15:55:11OrionPKMnot until 2014
15:57:12EXetoCBitPuffin: this is how you'd extend that alloc interface: https://github.com/fowlmouth/nimlibs/blob/master/fowltek/pointer_arithm.nim#L14
15:58:37gradhadom96: you look saner today
15:58:54dom96gradha: I didn't look sane before?
15:58:56fowlthere should be an issue goal
15:58:59KoodaEXetoC: oh, seems to be exactly what I need.
15:59:05KoodaI started implementing something like that
15:59:09gradhadom96: you had some weird _and attached and stuff
15:59:10fowllike 100 issues til .9.4
15:59:28dom96gradha: I see.
15:59:55EXetoCKooda: no unsigned ints though. complain to fowl if necessary
16:00:06Koodafowl: does pointer_arithm works with the pointer type?
16:01:00EXetoCtry it. but my guess would be that you'd have to work with a concrete type
16:01:19KoodaEXetoC: in fact, I have 32 bits offsets and I’m not sure it’s safe to use int32 for that. Will it raise an exception if I overflow the 2-complement?
16:01:22EXetoCalternatively, a set of overloads could be provided
16:01:51fowlKooda, it has to be a concrete type (what is the size of void?)
16:01:59KoodaBecause it’s anoying to use uint*, for example I can’t do setLen(mystr, myuint)
16:02:06Koodafowl: one byte
16:02:50KoodaWell, in fact, it depends… I have to think about it a bit more
16:03:22fowlKooda, if unsigned ints really annoy you, you can do `converter toint (some: uint32): int32 = int32(some)`
16:03:26KoodaFor now I only use byte pointers, but I only read uint32 with it
16:03:41EXetoCtry this: var x = int.high; x += 1. doesn't work for int16, int32 etc
16:03:45Koodafowl: yes, but what about overflow?
16:05:06EXetoCI assume that's a bug. surely it should be triggered no matter what. it's very limited otherwise
16:05:14fowlKooda, how likely is that
16:05:38fowlKooda, you could instead converter uint32 to int64
16:06:02KoodaBut then I’ll lose memory for nothing
16:06:26EXetoCok I see that you've reported a similar (bug?)
16:06:38KoodaYep
16:07:12KoodaI’m really thinking in C now, maybe that’s my problem. ^^
16:07:45EXetoCmany aspects of the language naturally maps to C concepts
16:09:25*rallipilot quit (Remote host closed the connection)
16:09:47*Varriount joined #nimrod
16:10:05KoodaI’ll think about that a bit more. Could I show it here for review after that?
16:10:34VarriountGood morning!
16:11:17VarriountAnyone know why I get an error about the folder "testability" not being found?
16:12:19gradhaVarriount: maybe you lack a folder named "testability"?
16:12:27gradhaVarriount: is that nimrod related?
16:13:02Varriountgradha, yes
16:13:37VarriountNevermind, it fixed itself.
16:13:38gradhaVarriount: my git checkout doesn't contain the case insensitive workd testability
16:14:22gradhamaybe it's some nimbuild thingy?
16:14:28Varriount(I forgot to run my symlink-mirroring script)
16:15:00tylerefowL: What is this "converter" magic? I don't see that mentioned in the tutorial
16:15:53tyleren/m, found it in the manual
16:15:53gradhatylere: not everything can fit in the tutorial, look up "Convertible relation" in the manual
16:15:54tylereneat
16:16:05tylerefeels a bit like implicits in scala
16:16:29Varriountgradha, I think it's a new compiler file. I was mistaken when I said 'folder'. They way I store nimrod, I have one common directory that has all it's files (but not folders, they are created) symlinked
16:16:50Varriount*symlinked to directories for 64 and 32 bit builds
16:17:08EXetoCdo you think there should be more shortcuts for applying an operation to individual tuple and/or array elements?
16:17:17VarriountEXetoC, yes.
16:18:00VarriountHowever, I also think that dogs should fly. So my opinion may not be worth much.
16:18:32tylere I kinda miss python's anonymous tuples a bit
16:18:49VarriountI thought you could make anonymous tuples?
16:18:50EXetoCanonymous as in (1, 2)?
16:18:58tylerecan you?
16:18:58EXetoCyes that's one
16:19:06EXetoCfk yeah!
16:19:32tylereahh, so you can!
16:19:52VarriountToday I Learned: Nimrod has anonymous tuples
16:20:03Varriount*Today tylere Learned
16:20:06fowllies
16:20:08fowloh
16:20:50tylereThe only limitation seems to be that array-style access only works with constants, unlike in python where you can essentially treat it like a read-only array, even loop over it
16:21:14gradhatylere: doesn't the field accessor work?
16:21:20gradhaor was it fields?
16:21:30tyleregradha: if it's an anonymous tuple there are no field names
16:21:41tylerevar x = (1,2,3,"foo")
16:21:43fowlgradha, difference between dynamic/static
16:21:50fowltylere, *
16:21:59gradhatylere: can't you use len on the tuple and a simple loop?
16:22:07EXetoCbut apparently you can't do tuple[int, int]. that's very minor though, since giving the individual elements a name doesn't really add any restrictions
16:23:26EXetoCtylere: what do you mean? this works, and a isn't a constant: "var a = (1, 2, 3); echo a[0]"
16:23:55EXetoC*'a'
16:24:20EXetoC(highly ambiguous correction)
16:24:22fowlEXetoC, but this doesnt: var i = 1; echo a[i]
16:24:40gradhatylere: len doesn't work, but field does -> for field in x.fields: echo repr(field)
16:25:11VarriountSorry that the windows bots went down - I think my power went out last night due to the snowfall
16:25:46zielmichaquoteIfContainsWhite is evil
16:26:05Varriountzielmicha, I saw some bug reports about that, what does it do?
16:26:06zielmichaalmost any piece of code using it in Nimrod is incorrect
16:26:21zielmichait is supposed to quote like shell, but not exactly
16:26:30gradhazielmicha: I think it's because of that that argument parsing doesn't work very well sometimes and I wrote my own module
16:26:35Varriountzielmicha, then point out the places where it needs fixing, and fix it.
16:26:42VarriountOr get someone else to fix it.
16:26:47*boydgreenfield joined #nimrod
16:27:03zielmichaI'm going to do it. See https://github.com/Araq/Nimrod/issues/726 for proposed solution.
16:27:51*Varriount claps for zielmicha
16:28:07Varriountzielmicha, what was it's intender purpose?
16:28:19EXetoCfowl: oh. well he was being a bit vague. do you think it should work?
16:28:23gradhazielmicha: I think this is another place where it all fails beautifully https://github.com/Araq/Nimrod/issues/274
16:28:47EXetoCfowl: I wouldn't mind being restricted to using constants, since it's a little less magic
16:28:54fowlEXetoC, no, it cant possibly work
16:29:23VarriountMagic! *throws glitter at EXetoC*
16:29:37EXetoCfowl: there's nothing impossible about it, but it would involve some magic like I said
16:29:55EXetoCbut anyway your answer was no :p
16:30:16fowlEXetoC, say you have for n in 0 .. 3: echo mytuple[n] this calls $ on mytuple[n], which may change types in each iteration (int, array, string, char)
16:30:43Varriountfowl, but what if the type doesn't have a $ proc?
16:30:56EXetoCwhich implies a potential exception raised
16:30:57fowlVarriount, eh?
16:31:18EXetoC= magic
16:31:36VarriountOh. nevermind. Anyone know where the magic regarding system procedures like "high" is?
16:31:50VarriountI mean, in the compiler code.
16:34:38fowlVarriount, grep -i mhigh /your/Nimrod/compiler/*.nim
16:34:55VarriountI'm on windows.
16:35:11fowli'm sorry :(
16:35:17EXetoCget yourself an ack then
16:35:19gradhaVarriount: there should be a dog you can ask stuff there
16:35:25fowlEXetoC, it cannot work.
16:35:34Varriountgradha, no, you're thinking of the paperclip
16:35:44VarriountThe dog ran away.
16:35:58gradhaVarriount: you could try to use nimgrep, but only if Araq allows you to
16:36:05fowlEXetoC, for n in 0..3: var it = mytuple[n] # it is going to be different sizes each iteration, stack smashing
16:36:13gradhaVarriount: tools/nimgrep.nim
16:36:20Varriountgradha, http://antyweb.pl/wp-content/uploads/2012/08/If+Microsoft+Windows+were+a+hammer_490b8d_3924408-600x400.jpg
16:36:40gradhaVarriount: there are rumors it's a cross platform grep, even better than the original
16:36:42EXetoCfowl: different example though
16:37:19fowlEXetoC, i wrote a macro for someone who wanted to do this
16:37:37fowlhttps://gist.github.com/fowlmouth/aa06e723494708c8d21b
16:37:44EXetoCso, not impossible :p but what crazy fool needed it?
16:38:21fowlEXetoC, it is impossible....my macro unrolls the loop by duplicating code
16:39:29EXetoCI didn't mention any particular restrictions. ok I think we're done :p
16:39:48fowlyou wanted to use it in a for loop!
16:39:50fowli still win!!
16:40:10fowlEXetoC, btw, if {.unroll.} actually worked, this would be conceptually fine
16:40:27*tylere is currently renewing his love/hate relationship with project euler
16:41:27Varriountfowl!
16:41:47tylereOh, I have a question about let.... is let just reference immutability or total immutability? If I do something like let x = @[1,2,3] can I mutate the array or is that not allowed?
16:41:56VarriountWhy did you remove most of windows.nim, *without* checking whether it was used by other libs?
16:41:56tyleres/array/seq
16:42:18gradhatylere: in the case of a sequence immutability is shallow
16:42:21fowlVarriount, more fun that way
16:42:32Varriountfowl, terminal.nim imports windows.nim
16:42:40*Varriount slaps fowl around a bit with a cosmic mackeral.
16:42:41EXetoCfowl: using for in conjunction with 'fields' for example doesn't perform any magic?
16:42:46fowlVarriount, change it to use winlean please
16:43:34gradhatylere: I'd expect you can't change an array entry but the entry itself could be a mutable object
16:44:17*PortablePuffin quit (Ping timeout: 250 seconds)
16:44:24fowlEXetoC, read the description of fields
16:44:29tyleregradha: that appears to be more or less the case from poking at it in the repl
16:44:54gradhatylere: arrays and seqs have the same shallow behaviour
16:45:05gradhatylere: also, repl usage is discouraged due to many limitations
16:45:10tyleregradha: I understand ;)
16:45:27tylereI guess I'm a bit more used to Scala, where most things are actually pointers internally
16:45:55tylereso "immuatable" vars really generally means you just can't assign an entirely new object, but can mutate the underlying object more-or-less at will
16:46:05Varriountfowl, and what of the modules that require things in windows.nim, that winlean does not provide?
16:46:18VarriountOr the other windows modules?
16:46:41fowlVarriount, well they shouldnt but if you find any let me know
16:47:14gradhatylere: it's difficult for a language to guarantee total immutability, after all, if you create your own object and assign it with let, how do you do a constructor?
16:47:42tyleresure
16:48:03Varriountfowl, terminal.nim, dialogs.nim
16:48:09OrionPKMdom96 babel search win => nimrod-glfw, nim-glfw
16:48:27VarriountAnd no, simply changing windows to winlean does *not* fix it.
16:48:37dom96OrionPKM: yes?
16:48:41fowldialogs is going to be babel-ified
16:48:55VarriountAnd terminal?
16:49:00OrionPKMdom96 shouldn't "windows" be a result?
16:49:16*Varriount is miffed
16:49:25dom96OrionPKM: Did you run 'babel update'?
16:49:25OrionPKMsince there's a package called "windows" now
16:49:27OrionPKMyes
16:49:30OrionPKMit's in the lis
16:49:33OrionPKMbabel list*
16:50:16fowlVarriount, i doubt you need the full windows wrapper for conIO stuff
16:50:33dom96OrionPKM: hrm, indeed.
16:50:36Varriountfowl, *I* don't need it, terminal.nim needs it.
16:50:44*gradha is disturbed by a google image search of mittens
16:50:52VarriountAnd all the other window's wrappers.
16:50:57OrionPKMdom96 search doesnt look at pkg titles?
16:51:06dom96OrionPKM: it should
16:51:12dom96so it's a bug
16:51:13gradhaOrionPKM: try "babel install babel"
16:51:32OrionPKMgradha nou
16:51:44gradhaOrionPKM: unfortunately it's still difficult to know which version of babel, but some of them should work, hopefully latest
16:51:53dom96gradha: it doesn't work for me
16:52:26gradhadom96: well, I have this on my todo:
16:52:31gradha At the moment the search command will exit if a (partial)
16:52:31gradha [tag match is found
16:52:31gradha first](https://github.com/nimrod-code/babel/blob/master/babel.nim#L368).
16:52:31gradha Maybe it should keep trying with names and instead use a
16:52:31gradha hash table to avoid repeating displaying the same package?
16:52:50dom96hrm, that's probably it.
16:53:06Varriountdom96, any way to change the download and install directories for babel?
16:53:16EXetoCfowl: you're implying that a loop can only be transformed in so many ways
16:53:20dom96Varriount: Not currently
16:53:29Varriount-_-*
16:53:34fowlEXetoC, what
16:55:02gradhaVarriount: it really did snow, you have a snowflake on your head
16:57:40VarriountYes. And it's currently vaporizing under the heat of my irritation
16:58:10VarriountI doubt you would like it if half your stuff stopped compiling.
16:58:31NimBotnimrod-code/babel master 94ff509 Dominik Picheta [+0 ±1 -0]: Implemented tag querying for git. Ref #18.
16:58:31NimBotnimrod-code/babel master c6fa301 Dominik Picheta [+0 ±1 -0]: Search will now continue even if packages are found based on tag name.
16:58:43Varriountdom96, why does babel contain what looks to be a wholesale copy of nimrod?
16:58:56*hoverbear joined #nimrod
16:59:04dom96Please check if you guys can still install packages because ^^ might've broken some things.
16:59:21dom96Varriount: a wholesale copy of Nimrod?
16:59:30fowlscrypt.nim installs
16:59:33gradhaawww, now https://github.com/nimrod-code/babel/pull/19 doesn't merge
16:59:35tylereIs there any shortcut for var foo: seq[int] = @[]?
16:59:45EXetoCfowl: for loop as for loop. I don't care what part of the statement performs the bloody operation
16:59:47Varriountdom96, the directory structure looks like a copy of nimrod
16:59:48fowltylere, var foo = newseq[int]()
16:59:57tylerecool, thanks
17:00:19fowlEXetoC, sorry but wtf are you talking about
17:00:57dom96Varriount: ~/.babel?
17:01:07EXetoCdick
17:01:09dom96how does it?
17:01:15VarriountNo, babel, the repo, the install directory.
17:01:31EXetoCthat attitude
17:02:45dom96Varriount: I don't see the resemblance
17:03:24Varriountdom96,
17:03:25Varriounthttps://gist.github.com/Varriount/7875923
17:04:32gradhamaybe the git command does weird stuff on windows and stargated your nimrod checkout into babel?
17:04:36fowlEXetoC, i dont want to explain anymore why regular for loops wont work with tuples, is there more you wanted to talk about
17:04:55Varriountgradha, I just did a fresh clone.
17:05:03dom96what, that's the nimrod repo?
17:05:46VarriountThats the file tree of what I have after I clone and build babel
17:06:57gradhait's amazing, considering that https://github.com/nimrod-code/babel doesn't even have directories
17:07:20VarriountI know. Which is why I'm puzzled.
17:07:50fowlyou're drunk Varriount
17:08:00gradhaVarriount: you did mention erlier doing symlink stuff, that's could be satanic
17:08:03VarriountI don't drink.
17:08:21*PortablePuffin joined #nimrod
17:08:24gradhaVarriount: hah, it's never too late to start!
17:08:24Varriountfowl, I dislike anything alchoholic. It all tastes like rubbing alchohol to me.
17:08:36dom96high then?
17:08:37fowleven beer?
17:09:02Varriountfowl, yes. dom96, I wouldn't even know *where* to get drugs, even if I did have the inclination.
17:09:23gradhaVarriount: at the chemical level drinking alcohol is the same as drinking coke, the difference coke is more boring and you are legally allowed to destroy your liver with it and have diabetes
17:10:16VarriountI don't drink soda, except on special, rare occasions.
17:10:29EXetoCfowl: I meant magic everything, including 'for'
17:10:36EXetoCPortablePuffin: still hacking the compiler?
17:10:38*PortablePuffin quit (Read error: Connection reset by peer)
17:10:58*boydgreenfield quit (Quit: boydgreenfield)
17:10:58gradhaVarriount: in that case the only other thing you could be high on is maybe sugar. Still, quite unlikely to have stargated your babel checkout
17:11:15fowlEXetoC, you dont need magic for, someone just needs to implement {.unroll.}
17:12:14*BitPuffin quit (Quit: WeeChat 0.4.2)
17:12:27gradhaVarriount: have you tried to replicate it on another directory?
17:14:31EXetoCfowl: apparently that's neither magic nor regular then, but ok case closed
17:14:43*boydgreenfield joined #nimrod
17:15:30*PortablePuffin joined #nimrod
17:17:35Araqwhat? who removed windows.nim?
17:18:40fowl<-
17:18:55Araqwhy?
17:19:14fowlit was on the list of things to make into babel packages
17:19:17*boydgreenfield quit (Ping timeout: 265 seconds)
17:20:09Araqwell that's too bad, add it back then
17:22:35fowlk
17:23:26gradhahmmm... looks like "git revert e3d3cf5f8fe7e5030f7d1db316e684dd484111d3" would undo that
17:24:56fowlwill you do it then
17:25:14gradhasure
17:25:47fowlthanks
17:25:54OrionPKMcan probably also remove the babel package hten
17:29:26*brson joined #nimrod
17:29:26*Varriount_ joined #nimrod
17:29:44*Varaway joined #nimrod
17:29:51NimBotAraq/Nimrod master 18ad6db Grzegorz Adam Hankiewicz [+8 ±0 -0]: Revert "removed windows". Refs #698.... 2 more lines
17:29:51NimBotAraq/Nimrod master f05bad8 Grzegorz Adam Hankiewicz [+8 ±0 -0]: Merge pull request #727 from gradha/pr_recovers_windows_code... 2 more lines
17:32:04*Varriount quit (Ping timeout: 246 seconds)
17:32:04*Varaway is now known as Varriount
17:33:21NimBotnimrod-code/packages master 6433df0 Billingsly Wetherfordshire [+0 ±1 -0]: Update packages.json... 2 more lines
17:49:45KoodaIf anyone has some time, I would like this to be reviewed :) https://kooda.upyum.com/bazar/tmp/nimrod/
17:52:44*boydgreenfield joined #nimrod
17:53:50*DAddYE joined #nimrod
17:56:34AraqKooda: utilitites.stringAt is horrible
17:56:46KoodaExplain
17:56:48Araqresult = newString(size)
17:56:55KoodaOk :)
17:56:57Araqinstead of = ""; setLen()
17:57:03KoodaYep
17:57:05dom96Kooda: "This Connection is Untrusted" :(
17:57:13Koodadom96: self-signed cert
17:57:26Araqand it looks inefficient
17:57:28dom96i'll trust it then
17:58:10Araqbut I guess it's the best one can do here
17:58:18KoodaI’m open to any suggestion, I don’t do much low-level work
17:59:34Araqmeh it's good enough I guess
17:59:46Araqyou need to change TFSEntry to do better
17:59:54KoodaHow?
18:00:22Araqfor "name" you could use a (cstring,len) pair
18:00:42Araqbut that's harder to work with so ... it's fine
18:01:02KoodaHm, yes. And the names will disapear someday
18:01:10Kooda(they only are in the debug rom)
18:02:14tylereSuggestion: single argument (The target array) version of ReadBytes that reads the entire file
18:04:06KoodaI use a TMemFile her
18:04:08Koodahere*
18:06:23*CarpNet quit (Quit: Leaving)
18:07:29KoodaIf you have any documentation or ideas about binary file parsing, please tell me. :)
18:07:39KoodaI was thinking of implementing a DSL for that
18:07:53tylereKooda: I was thinking about that the other day
18:08:03tylereI tend to think python's struct module is a good way to implement
18:08:11tylereand can probably be essentially ported to nim
18:08:18tylerealthough it would probably require macros
18:08:23tylereat least to do it efficiently
18:08:57KoodaI was also thinking about something like python’s struct yes
18:09:11KoodaYes, and I don’t really like strings in DSL
18:09:22KoodaThey are not easily checked at compile time
18:09:25tylerein a really really ideal world you'd probably have some sort of C struct converter also
18:09:55KoodaI’m wondering if it would be possible to do a parser from binary to nimrod object
18:10:11KoodaSo, pretty much that yes
18:11:01tylereI don't think TMemFile will actually work me
18:11:13tylerebecause I do need to mutate but _don't_ want those changes written to disk
18:11:17Varriount_dom96, the builders might go down for a bit. I found out the reason why I was getting nimrod's directory copied into babel's
18:11:26*Varriount quit (Disconnected by services)
18:12:04tylereThe project I have in mind is a Z-Machine intepretor, if you're familiar
18:12:17*Varaway joined #nimrod
18:13:28tylere(if you're not, it's basically the simplest VM/emulator project you could do that's actually useable and wortewild)
18:13:38tylereit can run all the old text adventure games, Zork, etc
18:13:59fowldom has a gbemulator in the works
18:14:07tylereand the format is well documents and you're not emulating physical hardware, so you don't have to worry about timing or anything, or even graphics
18:14:14tylereneat
18:14:19tylerethat's a bit beyond my skills
18:15:26*Varriounz joined #nimrod
18:15:34*Varriounz is now known as Varriount
18:16:31*Varaway quit (Ping timeout: 245 seconds)
18:20:08*Varriount quit (Quit: Meep!)
18:21:53Araqoh btw gradha, let for sequences is not shallow immutable, it's "deep" in the sense that no element of the sequence may be modified
18:24:25tyleregood to know
18:24:38tyleremakes sense given how value-oriented nimrod is
18:25:12gradhasorry, I meant the objects of the sequence can be changed, mutated, or whatever you call them
18:26:21gradhaI guess I have a different concept of deepness then
18:26:41Koodatylere: didn’t know about it. I only knew about chip8
18:28:28*fntzr quit (Quit: Leaving)
18:29:02tylereKooda: It's a really cool thing, historically
18:29:03fowlit would be more fair to say that let acts like T *const instead of const T*
18:29:08tylerearguably the very first VM
18:29:27tylereThey had these text adventure games, circa 1980 or so, and of course at that time you had ten-gazillion home platforms
18:29:36tylerepc, apple, amiga, commodore, armstrad, etc
18:29:52tylereso they wrote a VM optimized for their exact use case, which they only had to port once per platform
18:30:14tylereand then all of their games just bundled the interpreter with the game file, which was sort of a psuedo-executable
18:30:42Koodatylere: that’s nice :
18:30:43Kooda:)
18:30:43tylereit does run a lot like a real computer...there's a static heap, a stack, a call stack, a current instruciton pointer...
18:31:01KoodaOk :D
18:31:37tylerebut unlike real hardware theres no bios, or interrupts, or timers, or anything like that so it's much easier to emulate, since you don't have to worry about any of that, or making it run "real time"
18:34:24Araqscummvm in nimrod would be cooler though
18:34:25KoodaThe files I show you are our first step at making a clone of the Zelda64 engine ^^
18:35:16KoodaIt reads the filesystem from the ROM, I was able to watch some textures already :)
18:35:43tylereneat
18:35:56tylerenot working on a general-purpose n64 emu?
18:35:59tylerejust zelda?
18:36:07tylereAraq: agreed, but that's a harder project ;)
18:36:31tylereAraq: I wanted something substantial, but also something I could conceivable get working in maybe 2 weeks of evenings or something
18:36:36Araq*shrug* just c2nim all of scummvm
18:36:43Koodatylere: just zelda yes
18:37:04KoodaAraq: that would be a huge test case for c2nim :D
18:38:18Koodatylere: it would work for Ocarina of Time and Majora’s Mask, since they use pretty much the same engine.
18:38:32KoodaOur goal is not to emulate, it’s to have a native version of it
18:38:54tyleregotcha
18:40:17*viteqqq joined #nimrod
18:40:33fowlcool
18:41:04tylereIs there any stdlib function to dump seqs/arrays (possibly nested) to stdout?
18:41:11tylereecho only seems to work with a basic types
18:41:15Kooda$? repr?
18:41:15Varriount_tylere, echo(repr(x))
18:41:23tylereahh, repr
18:41:24tylereduh
18:41:29tylerethat's even the same as in pythion
18:42:25Varriount_The only time I have had repr() not work is in the case of nimrod compiler data structures.
18:42:32*Varriount_ is now known as Varriount
18:43:08KoodaUnsigned integers are also messed up :x
18:43:21OrionPKMaraq, any ideas on how I might build an easily parseable index (ala http://nimrod-lang.org/theindex.html )?
18:43:26tylerehrrm... while stdin.ReadLine(line): doen't work as expected
18:43:32OrionPKMbut with XML or JSON
18:43:34tylereit sigsegvs with an illegal storge access
18:43:51Araqvar line = ""
18:44:00Araqshould fix that
18:44:01Varriounttylere, see the rdstdin if you need standard input
18:44:38OrionPKMaraq i'd like to make a quick doc lookup in our ST plugin
18:44:47VarriountAraq, why is the procedure for reading from standard input (user input) in it's own module, with no other functions?
18:45:04VarriountWouldn't it make sense to put it in a module like terminal?
18:45:06AraqVarriount: becuase it depends on gnu readline on linux
18:45:08tylereVarriount: I'm trying to read piped in text, not do a prompt
18:45:48tylerealthough I guess it should work
18:46:07gradhaOrionPKM: during the generation of the index, *.idx files are temporarily generated, you could concatenate and parse those
18:46:33OrionPKMwhat generates the index?
18:46:42AraqOrionPKM: just follow "koch web"
18:46:48OrionPKMmmk
18:46:58Araqthat's what I do, I never remember anything
18:47:15Araqultimately it's generated by the compiler of course
18:47:23OrionPKMright
18:48:27VarriountEmptying Recycle Bin... 15GB Remaining
18:49:10EXetoCPortablePuffin: I think you told me to add a notice about COPYING.txt as well, and in the commit message. surely that's not necessary. I added it to the source file though in the second commit
18:51:09Araqdom96: any idea how we should integrate babel into http://nimrod-lang.org/lib.html ?
18:52:29dom96loop through packages.json, clone them and run nimrod doc on them?
18:52:42VarriountAraq, do like what python is doing. Add a basic version of babel capable of updating itself
18:53:06VarriountPossibly in ./tools/
18:53:35Araqdom96: well I'd like to add only marked packages
18:53:40*ossiana joined #nimrod
18:53:40*ossiana quit (Remote host closed the connection)
18:54:18AraqVarriount: no idea what you mean. Python is famous for its huge stdlib + PyPI split
18:54:36dom96Araq: Could use the tags to determine which.
18:54:57Araqdom96: nah, I guess I'll have my own list somewhere
18:55:13Araqotherwise people can simply claim it's stdlib like quality
18:55:16VarriountAraq, well, you probably haven't been following recent developments
18:55:20tylereSuggestion: Module documentation broken out by the type of the first argument, for none-basic types. So, all the TFile functions grouped together for instance
18:55:30fowl:D
18:55:41fowltags: ["araq-approved"]
18:56:09VarriountAraq, what is being done is that a bootstrap version of pip (successor to easy_install) is being included in python's scripts directory
18:56:41dom96Araq: or you could check if they are in the nimrod-code org.
18:56:51Araqtylere: we know. nobody is implementing that though.
18:56:52VarriountThat way, pip can be updated seperately from the stdlib, while still being part of it.
18:57:19Araqdom96: hmm good point
18:57:59tylereAraq: I may have to dive into the nimrod doc generating code at somepoint. Is that part of koch? Is there any roadmap that lays all this out?
18:58:02*fowl is wrapping llvm-c
18:58:52*tylere is now known as TylerE_Meeting
18:58:55Araqtylere: it all starts with "koch", koch doesn't do much itself though, it's a delegator because I can't remember the various tools and how to invoke them
18:59:24Araqit's all not documented but following the source is reasonably easy
18:59:50VarriountI like koch.
19:01:36*zahary___ joined #nimrod
19:01:40Araqwow, how come?
19:04:12*zahary__ quit (Ping timeout: 252 seconds)
19:04:50gradhafowl: aren't you meant to use llvm to wrap C libraries for nimrod instead?
19:06:50OrionPKMaraq nimrod dump doesn't list babel paths, should it?
19:07:11AraqI guess it should
19:07:28Araqbut this whole babel path needs to be re-thought
19:07:31EXetoCAraq: why? you don't? seems like a useful tool aggregator
19:08:02AraqEXetoC: well I like it, but people at various times suggested it's from hell and I should use "make" instead
19:08:24EXetoC:E
19:08:29gradhabecause make is less hellish?
19:08:35Varriount^
19:08:53Araqbecause "make" can deal with recursive dependencies so easily ;-)
19:08:54VarriountAraq, koch is much, much better than make
19:09:17AraqI know. bootstrapping is a big recursive dependency
19:09:25Araqwhich "make" can't handle
19:10:08VarriountAraq, it took me 2 weeks to compile a half-baked build of gcc. It took me 20 minutes to build nimrod.
19:10:45AraqVarriount: yes. but those are boring facts. These people live in the amazing Unix land instead.
19:11:01fowlgradha, its a vm though
19:11:16AraqWhere nothing works, but that's a well thought out feature.
19:12:03VarriountMake is a vm?
19:12:42fowlgradha, what did you mean use it to wrap c libraries? was that a joke
19:12:58gradhafowl: I had the impression that clang is based on llvm, which is used by projects like dao to create bindings https://github.com/daokoder/dao-tools
19:13:49Varriountfowl, gradha, there's also an in-development extension for pypy, which uses llvm to generate run-time bindings for C++ libs
19:14:16gradhafowl: also questions like http://stackoverflow.com/questions/19011238/how-to-find-lines-of-objective-c-method-implementations-using-libclang suggest it is possible to use clang to parse C/C++ code, including #defines
19:15:05gradhafowl: that particular example doesn't speak about defines, but you can use the tags libclang tag there to find others which might
19:15:30fowlwhy is there so much confusion about clang
19:15:53fowlclang is a c compiler, it uses llvm as its backend
19:16:19Araqfowl: that's what you think. I heard clang can also cure cancer.
19:16:46gradhathe other day my mother said libclang caught a thief at the supermarket trying to steal some groceries
19:19:11gradhafowl: what are you going to use llvm for?
19:20:37*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:21:10fowlgradha, exacerbating existing inequalities
19:26:01Araqtests/compile/tisop.nim ... gah, zahary___ your tests are killing me
19:33:28*PortablePuffin2 joined #nimrod
19:33:45VarriountIs the fact that os.removeDir skips files starting with '.' a bug, or a feature?
19:34:01VarriountAnd, does this happen on Linux, or only Windows?
19:34:04PortablePuffin2EXetoC: sec
19:35:50*PortablePuffin quit (Ping timeout: 245 seconds)
19:39:09Araqno idea, check the source
19:39:32gradhaVarriount: I'm not seeing any skipping of files
19:39:57VarriountOk, probably icky Windows stuff then
19:42:13gradhaVarriount: well, it looks like windows actually does skip such files
19:42:22gradhaos.nim, like 344
19:42:32gradhathere's a skipFindData which checks for '.' being the first character
19:42:51VarriountWhy?
19:43:25VarriountIs it for the '.' and '..' directories?
19:43:32gradhamaybe Araq got annoyed at sharing folders with unix
19:43:43gradhathere are other explicit tests for '.' and '..'
19:44:36Araqiirc the OS API lists the meta directories '.' and '..' as actual directories
19:46:48gradhamaybe windows skipFindData should use that kind of check instead of only looking at the first char
19:47:00gradhathe non windows part of the code does it separately
19:47:42Araqah so that's the bug lol
19:51:09joelmois anyone using nimrod.vim for code completion? I have not got the completion to work, looking at the source now, anyone know what s:CurrentNimrodFile() is supposed to do?
19:52:39*EXetoC2 joined #nimrod
19:53:10EXetoC2PortablePuffin2 ok
19:53:40*EXetoC2 is now known as PortableEXetoC
19:57:33*shodan45 joined #nimrod
20:03:16*PortableEXetoC quit (Ping timeout: 246 seconds)
20:06:51VarriountAraq, are you working on a fix for the bug we just discussed? If not, I will.
20:09:05*PortablePuffin2 quit (Ping timeout: 240 seconds)
20:11:48gradhajoelmo: I'm not sure vim autocompletion is finished, you could ask zahary___ about that
20:20:36gradhaAraq: is presuming a ProcDef has a FormalParams node as the 4th child standard practice or are there constants to access the children?
20:22:12TylerE_MeetingAraq: I may take a pass at a new doc generator/modifying the existing one
20:22:55AraqVarriount: no, please do it
20:23:16gradhaTylerE_Meeting: since you are at it, figure out a good way to hiperlink procs by name, now they are just numbered hrefs
20:23:40AraqTylerE_Meeting: feel free but in general I'm picky, so perhaps make it a "nimrod doc3" command in the compiler
20:24:02TylerE_MeetingAraq: Is there really a good reason to even make it part of the compiler?
20:24:07TylerE_MeetingI'm looking at docgen.nim
20:24:20TylerE_MeetingI see that it has lots of imports of compiler specific modules
20:24:30Araqwell it uses the semantic pass of the compiler which is easily 30K lines
20:24:55OrionPKMhow about a new doc command to generate JSON :)
20:24:59OrionPKMwhile ur at it TylerE_Meeting
20:25:00OrionPKM:P
20:25:08Araqbut hey, I'm sure you can do without like the first version "nimrod doc" did :P
20:25:32TylerE_MeetingI really really don't want to write a parse :P
20:26:07OrionPKMit'd be cool if all the compiler did was generate JSON, and then we just had a separate tools/doc.nim to take the json and put it into html/whatever
20:26:15gradhaTylerE_Meeting: how's the meeting going? any new plans for llvm?
20:26:27TylerE_Meetingnothing that exciting
20:26:31TylerE_Meetingnad I'm actually out now
20:26:44TylerE_Meetingbut I'm leaving for how in like 30 minutes so didn't feel like identing to nickserv again
20:28:39TylerE_MeetingI have to say Araq I'm pretty impressed
20:28:43TylerE_Meetingpoking around the compiler code
20:28:55TylerE_Meetingand I actually understand about 90% of what's it appears to be doing
20:29:02TylerE_Meetingwhich is about 80% more than I expected
20:29:29joelmogradha: ok thank you, it seems to not be ready as of now, dom96 you make use of idetools in aporia, how is that working now?
20:29:39Araqyou're obviously kidding. I use parameter names like c, n and t.
20:29:49TylerE_Meetingheh
20:29:52Araqnobody can understand that, it's voodoo
20:30:00TylerE_MeetingI meant just like how the commands are parsed and called
20:30:22TylerE_Meetinge.g. it took me less than about 2 minutes with grep to figure out where a "doc3" command would go
20:30:28zielmichaAraq: at least there are type declarations
20:31:03AraqTylerE_Meeting: ah so you know how to use grep. That's unfair.
20:31:20gradhazielmicha: how are your plans going on rewriting 99% of the compiler due to that quoting issue?
20:31:36zielmichanot bad
20:31:39Araqah wb zielmicha
20:31:48zielmichaactually I'm planning to rewrite 99% of stdlib
20:32:03gradhacool
20:32:06zielmichabad not everything at once
20:32:33dom96joelmo: It doesn't use CAAS yet, it just executes nimrod idetools ... for each query.
20:33:22Araqzielmicha: what are your plans for quoteIfContainsWhite?
20:33:37Araqbtw dom96 you were right
20:33:43Araqit broke code
20:33:51zielmichadeprecate and copy to osproc as quoteShell
20:33:57dom96That's nice to hear heh
20:34:01zielmichait didn't break code - it was broken from beginning
20:34:11zielmichajust in a different way
20:34:19*BitPuffin joined #nimrod
20:34:22gradhait needs more xml
20:34:23Araqthat's your opinion
20:34:27dom96it worked for some specific use cases though
20:34:54zielmichayou are right
20:35:27zielmichabut I don't like anyone being able to execute arbitrary code on my laptop, maybe you do
20:36:27BitPuffinEXetoC: I never told you to add COPYING.txt to the commit message, I said that you could add it to the source file and in that commit message you could add the thing about dedicating to public domain etc
20:36:44dom96zielmicha: that again depends on your use case
20:36:56BitPuffinseems like you may have done the right thing anyways :D
20:37:17EXetoCBitPuffin: I might've read only half of the words as usual
20:37:23BitPuffinor let's see
20:37:51BitPuffinyeah seems good enough :)
20:37:55BitPuffinI'll merge!
20:38:26Araqzielmicha: when you allow osproc with user input, you're already quite screwed
20:38:35BitPuffinEXetoC: done :D thanks!
20:38:53Araqand we also have a taint mode and an effects system to fight such things
20:38:59BitPuffinEXetoC: hg wasn't that bad eh? :D
20:39:15gradhaaccepting user input is so last century, cool code these days magically generates the input the user needs
20:39:50*dymk quit (Ping timeout: 240 seconds)
20:40:57*dymk joined #nimrod
20:44:01*PortableEXetoC joined #nimrod
20:45:04Araqhi PortableEXetoC welcome
20:45:18Araqare you EXetoC's mum?
20:46:13*dom96 wonders if Araq is looking to meet someone's mum.
20:46:41gradhaMILH = mothers I'd like to hack?
20:47:00PortableEXetoCNot rly
20:47:01*Araq thinks dom96 was absent for too long so he doesn't get the joke
20:48:08dom96You asked the same thing to PortablePuffin right?
20:48:28dom96Perhaps you don't get my joke :P
20:48:41EXetoCBitPuffin: seems like a bad idea to voice my opinion of it after two days
20:48:42Araqperhaps
20:48:44BitPuffinoh snappitididdely
20:48:52BitPuffinEXetoC: probably
20:49:01BitPuffinEXetoC: but you can give your first impressions!
20:49:37BitPuffinalrighty
20:49:44BitPuffinlet's fix this fucking template error
20:50:16EXetoCprocs pls
20:50:37BitPuffinbut they are just shortcuts
20:50:43BitPuffinthey don't need to be their own procs
20:50:44Araqdom96: explain your joke :p
20:50:45BitPuffin:(
20:50:58BitPuffinAraq: jokes should not be explained
20:51:01dom96^
20:51:18EXetoCaren't all functions? what's the point?
20:51:29Araqwell I'm a german so you need to teach me humor
20:52:55BitPuffinAraq: wanna hear a joke?
20:53:23dom96btw isn't the honey badger a mascot for bitcoin?
20:53:27EXetoCBitPuffin: the basics are pretty much identical in hg, and then I had that commit message issue, and the proposed solutions seemed a little silly
20:53:36EXetoCmaybe there's an appropriate extension that deals with this
20:53:41gradhadom96: bitcoin has a mascot?
20:53:54Araqdom96: that would be bad, but ours is a badger with a crown anyway
20:54:03BitPuffinEXetoC: I don't understand what the issue was o.O
20:54:11AraqBitPuffin: sure
20:54:28BitPuffinAraq: golang
20:54:30BitPuffinhahahahhaha :D
20:54:32BitPuffinkidding
20:54:34BitPuffin:P
20:54:44EXetoCBitPuffin: I had made my changeset public, and so I couldn't amend the commit (message)
20:54:49gradhadom96: http://bitcoinexaminer.org/is-alpaca-the-mascot-of-bitcoin/
20:54:56AraqI'll laugh later
20:55:07BitPuffinAraq: when nimrod takes over? :D
20:55:14dom96gradha: Araq: I don't think it's official, but it has something to do with this video: http://www.youtube.com/watch?v=4r7wHMg5Yjg
20:55:37BitPuffinEXetoC: hg commit --amend should work lol
20:55:42BitPuffinor what do yo umean
20:55:44BitPuffinah
20:55:50dom96Yeah, people are calling Bitcoin "the honey badger of money"
20:55:52BitPuffinyou mean it didn't show up when you pushed?
20:55:58BitPuffinI'm pretty sure in git you need to push -f
20:56:01BitPuffinprobably the same in hg
20:56:03BitPuffinor well
20:56:03EXetoCBitPuffin: hg simply disallowed it
20:56:05BitPuffinmaybe not
20:56:19BitPuffinEXetoC: but how can that happen on a local repo
20:57:01EXetoCI don't think I was able to create a commit that contained only a message
20:57:07EXetoCI don't know
20:57:31dom96This is cool: http://lightpack.tv/
20:57:53BitPuffinEXetoC: hmm
20:58:23BitPuffintemplate selectUserIdWhere*(predicate: string{lit}, args: varargs[string]): expr =
20:58:25BitPuffin db.getRow(sql("select id from users where " & predicate), args)
20:58:33BitPuffinI can't fathom why that has to be discarded
20:58:52BitPuffinbut sure I'll proc it
20:58:59gradhadom96: this is much better http://www.youtube.com/watch?v=gPmIDB8L-Fs I want one for xmas
20:59:00BitPuffinseems like a bug to me
20:59:34EXetoCstmt? actual type as return type? assign to result?
21:00:31OrionPKMheh, lucy lalas
21:01:12dom96gradha: I want one but it needs to have a crown and it needs to quote Araq hah
21:01:49gradhadom96: I can smell a stinky kickstarter brewing, not that I'd give a fuck about that
21:01:59BitPuffinso EXetoC return type didn't work
21:02:13BitPuffinneither did result
21:02:31dom96gradha: Did you hear that DjangoCon is happening on an island!? I want the same for NimCon.
21:02:44BitPuffinError: expression 'result = getRow(db, sql"select 1 from ? where ? = ?", ["users", "id", id])' has no type (or is ambiguous)
21:02:46*zahary___ is now known as zahary_
21:02:52*PortablePuffin joined #nimrod
21:02:58BitPuffinahhh
21:03:02gradhaDjangoCon? Is that some australian furry creature?
21:03:04BitPuffinmaybe the base of it all needs to be the type :p
21:03:36AraqBitPuffin: templates have no 'result'
21:03:54dom96oh what, last years one was in Poland!
21:04:01BitPuffinAraq: no I know
21:04:15BitPuffinI was trying it to try to get rid of the error
21:04:20BitPuffinbut it did give me better information
21:04:22dom96gradha: http://2014.djangocon.eu/
21:04:22BitPuffinI think
21:05:02gradhaman, these web type programmers sure like having parties, rather than actually doing something useufl
21:05:30dom96oh yeah, if NimCon happens we need to spend 90% of the time writing code.
21:05:44Araqwait what?
21:05:45gradhaonly 10% for blackjack and hookers?
21:06:01Araqgradha said what everybody thought ;-)
21:06:48NimBotAraq/Nimrod master ce3eac7 Zahary Karadjov [+0 ±1 -0]: fix computed dynlib names; fixes #718
21:07:16dom96I guess that means NimCon will happen in LA lol
21:07:22Araquh oh
21:07:22gradhadom96: I don't think the djangocon people coded anything for the whole gig
21:07:48Araqzahary_: you messed with dynlib names? :-/
21:08:12OrionPKMLas Vegas
21:08:58gradhadom96: just look at that picture, both seem stoned, hiding their faces because the alcohol content is so high they are plugging their laptops into water
21:09:06BitPuffinhttps://gist.github.com/BitPuffin/55d18b9a5a31bb5f833b this one i don't get why line 6 has to be discarded
21:09:08BitPuffinI've reversed it
21:09:16BitPuffinso that the base thing is a proc
21:09:19BitPuffinand the shortcuts templates
21:09:32dom96gradha: haha, nice observation.
21:10:07*PortableEXetoC2 joined #nimrod
21:10:09*PortableEXetoC quit (Read error: Connection reset by peer)
21:10:38zielmichais there a way to convert iterator into seq?
21:10:41zielmichain one line
21:10:47AraqBitPuffin: I don't know either, make a proper bug report
21:10:54gradhazielmicha: sequtils should have a toSeq
21:10:59*brihat joined #nimrod
21:11:23OrionPKMjust do toSeq(iterator()), not iterator().toSeq()
21:11:46zielmichaok, I tried the second variant
21:12:05BitPuffinAraq: yeah okay
21:12:07BitPuffinwill do boss
21:17:28*PortablePuffin quit (Ping timeout: 246 seconds)
21:21:18*TylerE_Meeting quit (Quit: home)
21:33:43BitPuffinAraq: is it fine if I just copy paste the code I showed you?
21:33:53BitPuffinor do I have to write a nicer bug report
21:34:22EXetoCalways a test case :p
21:34:40BitPuffinbtw gotta check first that it's not in the latest compiler
21:34:43AraqBitPuffin: if I can't compile it, I can't fix it
21:35:04BitPuffinalright
21:35:11BitPuffindayum brutha
21:35:11EXetoCnub:p
21:35:26BitPuffinEXetoC: well sometimes he tells me I don't have to write a testcase
21:36:59EXetoCno way
21:38:31BitPuffinuh
21:38:33BitPuffindafuq
21:38:38BitPuffintest case succeeds
21:38:41BitPuffin._.
21:38:52EXetoCyay
21:39:08BitPuffinno not yay because then I'm getting the most cryptic error in all history of nimrod
21:41:43dom96BitPuffin: I think you should implement bcrypt in pure Nimrod
21:42:38BitPuffindom96: hell no
21:42:51BitPuffindom96: why would I even want that btw
21:42:55BitPuffinscrypt is better
21:43:08dom96But then there is a dependency on libtarsnap :(
21:43:28EXetoCso what commits should have that public domain statement? I think you said only those that contains significant changes, which is ambiguous
21:43:38EXetoCand that's never done for other licenses
21:43:51*Amrykid quit (Excess Flood)
21:43:52BitPuffindom96: well then why not just implement scrypt in pure nimrod
21:43:58BitPuffinbut hell do I have that time :P
21:44:02*Amrykid joined #nimrod
21:44:07BitPuffingrow some balls, it's easy to get libtarsnap
21:44:22BitPuffinEXetoC: hmm well that's just to be careful
21:44:26dom96BitPuffin: Well I just thought that there are more implementations of bcrypt available to copy from
21:44:26BitPuffinmaybe I should add a waiver file
21:44:45dom96BitPuffin: it doesn't look like it is
21:45:04BitPuffinEXetoC: but really I'd say at the last commit of a PR is fine
21:45:15BitPuffindom96: it's extremely easy
21:45:20BitPuffinI can make it a oneliner even
21:45:45BitPuffinguess I'm gonna have to do it
21:47:04BitPuffin wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.35.tgz && tar -xvf tarsnap-autoconf-1.0.35.tgz && cd tarsnap-autoconf-1.0.35 && ./configure && ./make && sudo cp ./lib/libtarsnap.a /usr/local/lib && sudo ldconfig
21:47:08BitPuffindom96: try that ^
21:47:09dom96I wonder why the arch package doesn't contain it.
21:47:16BitPuffinme too
21:47:26BitPuffinwell probably because it statically links
21:47:31BitPuffinbut still
21:47:35BitPuffinshould be included imo
21:47:37EXetoCthat's one big annoyance in some cases
21:47:49BitPuffindom96: TRY IT
21:47:53BitPuffinI haven't tested it
21:47:55*dom96 dislikes dependencies
21:48:03BitPuffindom96: yo mom dislikes dependencies
21:48:14dom96I'll try it later
21:48:21BitPuffinno now
21:48:25dom96no
21:48:30BitPuffinotherwise I won't add it to the repo
21:48:47dom96haven't you already?
21:48:55BitPuffinI haven't added the oneliner no
21:48:58BitPuffinI just wrote it for you
21:49:00BitPuffinnow
21:49:10dom96oh the "one liner"
21:49:11BitPuffinbut apparently that didn't mean anything to you!
21:49:22BitPuffinit fits on one line in my terminal
21:50:39BitPuffinand I don't even have full HD res
21:50:48BitPuffinhttp://www.pasteall.org/pic/show.php?id=63773 proof
21:51:00BitPuffindom96: what do you say now dom diddely ninety six?
21:51:08BitPuffinWHO IS YOUR GOD
21:52:14BitPuffinah I see an error
21:52:24BitPuffin wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.35.tgz && tar -xvf tarsnap-autoconf-1.0.35.tgz && cd tarsnap-autoconf-1.0.35 && ./configure && make && sudo cp ./lib/libtarsnap.a /usr/local/lib && sudo ldconfig
21:52:44AraqBitPuffin: nice background image
21:52:55BitPuffinAraq: thanks!
21:53:10BitPuffinit's HR Giger
21:53:11Araqbut it's missing a predator
21:54:19*XAMPP joined #nimrod
21:54:19*XAMPP quit (Changing host)
21:54:19*XAMPP joined #nimrod
21:57:00BitPuffindom96: https://bitbucket.org/BitPuffin/scrypt.nim happy now
21:57:03BitPuffinI did everything for you
21:57:34BitPuffininstead of working on what I really _should_ work on
21:58:05BitPuffinnow I have to maintain that link aaaaaaaagh
22:04:05BitPuffinAHA!
22:04:07BitPuffinTest case fails!
22:04:46NimBotnimrod-code/babel master 1084b15 Grzegorz Adam Hankiewicz [+0 ±2 -0]: Makes search case insensitive.
22:04:46NimBotnimrod-code/babel master 2406776 Dominik Picheta [+0 ±2 -0]: Merge branch 'pr_case_insensitive_search' of https://github.com/gradha/babel into gradha-pr_case_insensitive_search... 3 more lines
22:05:19EXetoCBitPuffin: merge that important commit
22:06:21BitPuffinAraq: https://github.com/Araq/Nimrod/issues/729
22:06:52BitPuffinnow updated with compiler error
22:06:58gradhaAraq: why do IdentDefs end in an empty node instead of the node containing the type of the parameter list?
22:07:13AraqBitPuffin: how is that a bug?
22:07:43BitPuffinAraq: how is it not?
22:07:43Araqgradha: sometimes ther can be a '= value' after the ': type'
22:07:56BitPuffinyou were the one who said make a bug report
22:08:09BitPuffinoh wait
22:08:10Araqwell you described it differently
22:08:11BitPuffinhaha
22:08:19gradhaAraq: ah, had forgotten that. Is there a convenience proc which "unrolls" the IdentDefs when the user specifies multiple parameters of the same type?
22:08:20BitPuffinwell hm
22:08:21BitPuffinsec
22:08:39BitPuffinAraq: damn it
22:08:41BitPuffinclose
22:09:01BitPuffinwhere am I calling it without saving gah
22:09:20EXetoCyou did assign something to the value returned by the call before
22:09:43EXetoCbut that might not matter
22:09:57BitPuffinit is only called in templates
22:09:59BitPuffinso wtf
22:10:10BitPuffindon't close yet
22:12:17BitPuffinhonestly wtf
22:12:26BitPuffinthere is nowhere it is called without being stored from what I can see
22:12:54BitPuffinhttps://gist.github.com/BitPuffin/eb87f1c8a4bc1e032420
22:12:57BitPuffincan you guys see anything?
22:13:25BitPuffinobviously not with gh syntax highlighting
22:13:42BitPuffinit complains about line 31
22:13:56EXetoCline 79? doesn't it usually complain if a comment precedes it?
22:14:16EXetoCI mean succeed
22:14:33BitPuffinoh come on
22:14:51BitPuffinoh it was that
22:14:56BitPuffinwt-fin-f
22:14:58EXetoCor follows, to be grammatically correct
22:15:14EXetoCBitPuffin: but the error was reported in the template?
22:15:31EXetoChm yeah
22:15:36Araqit usually says "instantiation from here"
22:16:56BitPuffinfixed it all
22:17:25BitPuffinAraq: it didn't
22:17:43BitPuffinonly dbhelpers.nim(31, 14) Error: value returned by statement has to be discarded
22:18:05EXetoCI think you can just edit that issue then, and add that information
22:18:46EXetoCsince it is discarded there as well, at line 11
22:19:21EXetoCI hope there's a way to add line numbers to code blocks
22:19:42EXetoCon github
22:21:02BitPuffinsec
22:22:43BitPuffinwhy the hell can't I even reproduce that lol
22:23:50BitPuffinhttps://gist.github.com/BitPuffin/7882082
22:23:53BitPuffinno problem apparently
22:24:30BitPuffinEXetoC: tell me what's different
22:24:33BitPuffinI neeeeed youuu lol
22:27:17EXetoCI don't remember if the comment was in a template before, but it is now
22:27:32EXetoCbut I don't know if that's significant
22:30:36Araqcan anybody please have a look whether tests/compile/tmacro2.nim compiles?
22:31:33gradhait seems to do for me, outputting 42 and 77 among other stuff
22:31:46Araqhmm alright, too bad
22:31:52Araqcrashes my vm
22:32:06gradhaI'm on commit f05bad885a6c03c50e3b925ed7edfd9ae9fba8e8 if that's of any help
22:32:29gradhahmmm... or maybe not, can't remember if I recompiled after updating
22:32:44Araqno worries
22:33:07Araqremind me to never ever rewrite an entire subsystem of the compiler again
22:33:33Araqtakes months to get all the edge cases to work
22:33:58gradhasince you mention rewriting, I'm implementing macros to replace the importobjc pragma
22:34:32Araqthat sounds like a bad idea
22:34:51gradhait can't be worse than a pragma nobody can't use
22:35:00Araqhey
22:35:10Araqit's useful, look at my examples!
22:35:14EXetoCcan't or can? :p
22:35:24gradhaok, ok, it works for a subset of all objc methods
22:35:30Araqyep
22:35:59AraqI guess you need an importobjcClassMethod pragma :P
22:36:21gradhaI was thinking of making a babel objcbridge module, because I'm finding there are different ways you could interact with objc classes
22:36:29gradhaand for each you would like a different macro/way of importing
22:36:55gradhathere's the case where you have an objc class you want to make visible from nimrod, and viceversa, a nimrod object you would like objc code to call
22:37:10Araqactually we need to generalize importobjc
22:37:42Araqnah
22:37:58*hoverbear quit (Ping timeout: 246 seconds)
22:38:03Araqobjective C's syntax is too strange for format strings to describe it
22:42:43gradhaI've tried to use high(PNimrodNode) but it says the argument for high is invalid, any ideas?
22:42:56Araquse len?
22:43:21gradhaso it's broken? len works, been using that
22:43:32Araqno, it's simply not implemented
22:43:50Araqand overloading for 'high' used to be tricky
22:44:02Araqshould work easily nowadays
22:44:35gradhawow, nimrod has documentation from the future
22:45:25Araqgah
22:45:31BitPuffinadding objective c to c2nim would be really cool
22:45:42Araqproc high exists for PNimrodNode ...
22:45:48Araqdamn
22:45:58gradhaAraq: that's why I was asking…
22:46:04Araq-.-
22:46:08BitPuffinAraq: what was the release date for the new version again?
22:46:16AraqBitPuffin: shut up
22:46:43BitPuffinAraq: actually it wasn't meant to rub it in your face I was legitimally wondering
22:46:57gradhaBitPuffin: next hannukah
22:47:18BitPuffingradha: next bratwurst holiday
22:47:32gradhayum
22:47:44gradhaactually we should make an irc barbaque for the release day
22:48:14BitPuffinyeah totally
22:48:22BitPuffinwe'll bbq and link pictures
22:48:31BitPuffinit will be cozy
22:48:39Araqgradha: make a bug report then please, though it's 1-line fix
22:48:46gradhaI'll bring the alcohol, and drink it for all of you
22:48:55VarriountIs it possible to use conditionals in the 'do' parts of case statements? Like case 3; of 2 or 3: foo() ?
22:49:31Araqno case statements lack guards, unfortunately
22:49:51AraqI want that feature pretty badly though, so there is hope
22:50:09VarriountAraq, I was wondering if it could be done for the file deletion bug
22:50:22BitPuffingradha: sounds like a bbq with uncle Grzegorz
22:50:22Araqfor your example 'of 2, 3' exists
22:50:55gradhaBitPuffin: I prefer Mr Alcohol Badger
22:51:06AraqBitPuffin: release date was 16th of december
22:51:34Araqbut maybe we should try something different this time
22:51:43gradhaawww... should I cancel the striptease party?
22:52:05EXetoC24th? 31st?
22:53:00BitPuffinAraq: but then how will the programmers get their gifts on time?
22:54:01Araqwell I guess I can always cut the number of planned features and release what we have
22:54:15BitPuffinfocus on bug fixes imo
22:54:19gradhaBitPuffin: gifts == bugs?
22:54:24BitPuffingradha: probably
22:54:55*PortablePuffin joined #nimrod
23:02:21*zielmicha quit (Ping timeout: 252 seconds)
23:05:10*brson quit (Ping timeout: 240 seconds)
23:05:11*radsoc quit (Ping timeout: 250 seconds)
23:05:48*ics joined #nimrod
23:07:55*brson joined #nimrod
23:19:52NimBotnimrod-code/babel master 93a11fc Dominik Picheta [+0 ±2 -0]: Remote tag querying for search and list.
23:50:05NimBotAraq/Nimrod master b9bf351 Zahary Karadjov [+0 ±1 -0]: in successful compilations with verbosity:0, all output is suppressed (useful for combing with --run)
23:50:25Araqping zahary_
23:54:31EXetoCBitPuffin: have you testeded the example?
23:55:19BitPuffinEXetoC: not yet no
23:55:25BitPuffinEXetoC: trying to get a thing done first
23:55:30BitPuffinalthough it's getting near bedtime
23:55:35BitPuffinjust gonna fix this one bug
23:55:43EXetoCbut this is reaaaally important stuff man
23:55:46EXetoCok it can wait
23:56:28BitPuffinEXetoC: well does it work for you? lol
23:56:35BitPuffinI assume you tested it before you PR'd
23:57:23EXetoCkinda
23:58:14*zahary joined #nimrod
23:58:29Araqah zahary is here
23:58:34PortableEXetoC2Lol
23:58:52zaharysorry for not being around, I'm on a very crappy 3G connection