<< 20-06-2013 >>

00:05:14fowlvar p = cast[pointer](0x1000)
00:05:38fowlwhat do you need that for btw
00:06:07Sergio965Writing a little kernel.
00:06:13Sergio965Well, just wrote it. It works!
00:07:13fowlnice
00:08:39Sergio965How do I dereference it?
00:08:49Sergio965I tried p[] = bla, but no go.
00:08:58OrionPKdealloc?
00:09:13fowlpointer is void*
00:09:31Sergio965Not dealloc, dereference.
00:09:44Sergio965Can I give it a type somehow? :\
00:09:53fowlyeah use ptr T instead of pointer
00:10:01fowli hate to say RTFM, but you should do it
00:10:04OrionPKlol
00:10:05Sergio965I did.
00:10:09Sergio965I promise!
00:10:23Sergio965But I didn't see this anywhere...
00:10:37Sergio965It says, "The empty [] subscript notation can be used to derefer a reference".
00:10:44Sergio965I tried that, didn't work.
00:11:25OrionPKwhat happens when you do the empty [] subscript notation
00:11:51Sergio965The empty [] subscript notation can be used to derefer a reference
00:11:52Sergio965Er.
00:12:03OrionPKah, a ref but not a ptr?
00:12:04Sergio965Error: ']' expected.
00:12:11fowlpaste line
00:12:32fowlexample from the manual: var d = cast[ptr TData](alloc0(sizeof(TData)))
00:12:39Sergio965Where is that?
00:12:51fowli just ctrl+f'd for ptr
00:13:12Sergio965Oh, the manual.
00:13:13fowlhttp://nimrod-code.org/manual.html#the-addr-operator
00:13:16Sergio965I've been looking at the tutorial.
00:14:56Sergio965Nonetheless, it doesn't say how to dereference.
00:15:11Sergio965Does it need to have a type?
00:15:23fowlbro
00:15:25fowlRTFM
00:15:37fowlthe link i just gave you shows an example of dereferencing
00:15:41Sergio965With a type.
00:15:52Sergio965With fields.
00:16:03fowlits in there
00:17:17fowlsearch for "proc divmod"
00:18:23Sergio965That's exactly what I was doing.
00:18:39Sergio965I see.
00:19:15fowlSergio965, one time i talked to my aunt for 3 hours on why her tv wasn't turning on, she swore it was plugged in, guess what the problem was
00:19:51Sergio965She had the wrong remote? :)
00:19:56Sergio965Hehe.
00:20:13Sergio965Sorry, you're right. I didn't realize the manual was different from the tutorials + compiler manual.
00:22:35OrionPKwhat the shit.. this code worked fine yesterday :S
00:22:41OrionPKError: undeclared identifier: 'TThread'
00:22:56OrionPKnimrod hasn't even been updated since then
00:23:37fowlyou have to compile with --threads:on or something like that
00:23:43OrionPKyeah, it is
00:24:06OrionPKdifferent error than that anyway, I think
00:24:23fowlare you working on games? (:
00:24:58OrionPKhah, no.. I've got to ramp down on a "personal" project that I'm doing for work before I can do anything big in nimrod
00:25:16OrionPKand I say "personal" because really it's work work that I'm just not getting paid for.
00:28:07OrionPKah god dammit
00:28:18OrionPKmy build system got switched to something else
00:28:35OrionPKso you were right, ultimately it wasn't using --threads:on like my makefile tells it to
00:29:12fowldont use makefile
00:29:24fowlecho "theads: on" >> nimrod.cfg
00:30:37fowlor use a nakefile (:
00:30:44OrionPKlol
00:30:51OrionPKwell, it's just for a small test project
00:31:06OrionPKI'd probably use CMake or something at least for something bigger
00:31:17fowlhttps://github.com/fowlmouth/nake
00:31:44OrionPKha, that's great ;)
00:32:29EXetoCneat
00:36:57*DAddYE joined #nimrod
00:43:45*DAddYE quit (Ping timeout: 248 seconds)
00:54:57OrionPKbabel relies on OpenSSL?
00:55:56*EXetoC quit (Quit: WeeChat 0.4.1)
01:02:20OrionPKi guess sockets.nim does
01:05:11*Sergio965 quit (Quit: Sergio965)
01:07:39OrionPKcan openSSL be added to the dist folder?
01:07:43*fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org)
01:15:55*fowl joined #nimrod
01:44:23OrionPKproc CRYPTO_set_mem_functions(a,b,c: pointer){.cdecl, dynlib: DLLSSLName, importc.} vs. int CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*free_func)(void *));
01:44:38OrionPKoops, wrong one :S
01:44:52OrionPKint CRYPTO_set_mem_functions(void *(*m)(size_t),void *(*r)(void *,size_t), void (*f)(void *));
01:59:43OrionPKyeah, babel works seamlessly on mac, not windows
03:05:36*DAddYE joined #nimrod
03:59:54*OrionPK quit (Quit: Leaving)
04:14:57*DAddYE quit (Remote host closed the connection)
04:33:37*DAddYE joined #nimrod
04:35:20*DAddYE_ joined #nimrod
04:38:56*DAddYE quit (Ping timeout: 255 seconds)
05:22:46reactormonkfowl, yeah, := looks like a good idea
05:36:29*mal`` quit (Ping timeout: 256 seconds)
05:38:49*mal`` joined #nimrod
06:06:01*DAddYE_ quit (Remote host closed the connection)
06:06:33*DAddYE joined #nimrod
06:11:01*DAddYE quit (Ping timeout: 252 seconds)
06:16:08*q66 joined #nimrod
06:59:31*DAddYE joined #nimrod
08:28:06*DAddYE quit (Remote host closed the connection)
08:28:34*DAddYE joined #nimrod
08:32:54*DAddYE quit (Ping timeout: 252 seconds)
09:01:15*Araq_ joined #nimrod
09:45:52*Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803])
10:01:34*EXetoC joined #nimrod
10:41:46*Trix[a]r_za is now known as Trixar_za
12:30:55*tumak quit (Ping timeout: 260 seconds)
12:31:02*tumak joined #nimrod
12:57:08EXetoC"newCall("invariant", firstparam)" so this gave me an ICE because the macro itself was called invariant
13:01:25EXetoCno, it's because the module has the same name
13:02:42*Trixar_za is now known as Trix[a]r_za
13:02:45dom96hrm, something weird happened with the IRC logs yesterday.
13:04:13dom96OrionPL: Yeah, babel requires it to connect to github. It also needs a git in your PATH.
13:04:24dom96I haven't tested it on windows, so beware.
13:07:51EXetoCthe exe name is the same as for openbabel. I don't know what openbabel is for or why it's installed though, so I can just remove it I guess, but still
13:08:31dom96what? What is openbabel?
13:08:33EXetoCin case you didn't know
13:09:22EXetoCI don't know but I tried to install the package manager (package babel-git), but a file name collision was detected
13:10:54dom96damn, hopefully many people won't want to perform cheminformatics and use babel at the same time.
13:11:51EXetoC:>
13:12:26EXetoCprobably not in the near future. Nimrod hasn't achieved world domination just yet
13:13:07dom96It's ok, when it does people will blame OpenBabel for the conflict.
13:13:10*dom96 crosses fingers
13:14:47dom96Round 6 of the Framework Benchmarks (with Jester) may be out soon :D
13:18:43dom96EXetoC: Make bug reports on github for any ICEs
13:36:34*Sergio965 joined #nimrod
13:39:40*Sergio965 quit (Client Quit)
14:34:36*Trix[a]r_za is now known as Trixar_za
14:51:00*Sergio965 joined #nimrod
15:00:46dom96hello Sergio965
15:07:53*Sergio965 quit (Ping timeout: 240 seconds)
15:43:25*Trixar_za is now known as Trix[a]r_za
15:49:03*Trix[a]r_za is now known as Trixar_za
16:09:37*Sergio965 joined #nimrod
16:25:27*DAddYE joined #nimrod
16:39:05dom96awww they delayed it to the 25th.
16:41:40reactormonkgotta say, I like this source annotation: http://harrah.github.io/xsbt/latest/sxr/IO.scala.html
16:54:18EXetoCdom96: it seems pretty neat
16:54:39EXetoCis anyone working on template engines?
16:55:13dom96EXetoC: hrm? was that directed at reactormonk?
16:55:29dom96EXetoC: Nimrod supports templating.
16:55:57reactormonkdom96, for documentation generation
16:59:53dom96reactormonk: https://github.com/Araq/Nimrod/blob/master/config/nimdoc.cfg ?
17:04:45EXetoCdom96: I found some html template snippet before, but I can't find it now
17:04:50EXetoCin the manual or something
17:05:21EXetoCdom96: and I meant Jester, if only for that DSL :>
17:05:37*Endy joined #nimrod
17:06:12dom96EXetoC: http://build.nimrod-code.org/docs/filters.html
17:06:55EXetoCthere it is. thanks
17:07:40dom96And yeah, thanks. I'm excited to see the benchmark results of it in comparison to other frameworks.
17:08:00dom96Even though it hasn't exactly been all that well optimised.
17:19:12EXetoCas long as it beats java frameworks :>
17:19:56dom96well it doesn't use 50TB of RAM so I think it does :P
17:20:18EXetoCalright then
18:09:31*Sergio965 quit (Quit: Textual IRC Client: www.textualapp.com)
18:11:38EXetoCoh no, Serio965 was in the Rust channel as well. We must convince him that only Nimrod isn't a complete waste of time
18:27:55*Endy quit (Ping timeout: 260 seconds)
18:36:01dom96indeed. Why stop there? Go and convince other people in #rust too :P
18:36:48Araqthat's a bad idea :P
18:37:51Araqour concurrency model is still in flux...
18:39:02dom96yeah, and we're still waiting for that blog of yours.
18:50:53EXetoCdom96: only if they're here too :>
18:51:23EXetoCAraq: yeah, not being entirely serious
18:51:41EXetoCbut basic things should be doable, which is good enough for me atm
18:53:55EXetoCsomeone claimed that rust's message passing model isn't ideal for many tasks. do you have any thoughts regarding that?
18:54:28Araqbeen there done that, message passing sucks for parallelism
18:54:43Araqbut for concurrency it's often preferable
18:55:58EXetoCoh ok
19:03:45*XAMPP-8 joined #nimrod
19:18:54*XAMPP-8 quit (Ping timeout: 252 seconds)
19:29:37*XAMPP-8 joined #nimrod
19:29:42*XAMPP-8 quit (Read error: Connection reset by peer)
19:36:32*Sergio965 joined #nimrod
19:37:35Araqwb Sergio965; I heard you joined the dark side
19:37:45Sergio965The dark side?
19:37:51Sergio965Which is that?
19:38:05Araqthe rusty language
19:38:08EXetoC:-)
19:38:09Sergio965Lol.
19:38:17*gradha joined #nimrod
19:38:25Sergio965Sneaky.
19:38:54Sergio965I'm doing some research on developing kernels in high level languages; Rust and Nimrod are two of the languages being surveyed, among others.
19:39:28Sergio965Rust is neat, though.
19:40:34EXetoCyup
19:40:47fowllet mut nothx
19:41:02gradhaEXetoC: the documentation you linked to, that's partially my purpose with https://github.com/gradha/the_hyperlink_vs_nimrod
19:41:15EXetoCgot plenty of manpower too
19:41:21gradhaEXetoC: it's not pretty now http://dl.dropboxusercontent.com/u/145894/t/weird.proc.th.html but that's because I'm not an artist
19:42:13Araqindeed I envy Rust's manpower
19:42:29Sergio965Is there some documentation about the ideology of Nimrod? Why was the language created?
19:43:36Araqbecause every other PL sucks ;-)
19:43:55gradhathe ideology of "taste"
19:44:53Sergio965That's unfair. I can think of a few languages, Python, Go, Haskell, that are superb.
19:44:54EXetoCgradha: I can't remember what that was, but that seems interesting
19:45:24gradhaEXetoC: the link you provided was http://harrah.github.io/xsbt/latest/sxr/IO.scala.html#31627
19:45:49gradhaI might as well bookmark it to "steal"... er... "learn" from their pretty javascript
19:46:07EXetoC*reactormonk
19:46:55gradhaah, true, misread that, indeed seems more like something reactormonk would bring up
19:47:12Sergio965Nimrod's error messages are rather cryptic. (or is it just me?)
19:47:31fowlsuch as?
19:47:34gradhaSergio965: takes some time to adapt
19:47:50AraqGo: racy as hell, way less expressive than C, bad taste everywhere (itoa wtf?)
19:48:01AraqPython: dynamically typed. meh, thanks
19:48:35AraqHaskell: indeed superb but I'm not convinced of laziness per default
19:48:43Sergio965I don't think you've given Go a chance. Goroutines are fantastic, the receiver method of OO is also fantastic.
19:48:46EXetoCAraq: yeah, the dynamic typing bit me several times
19:49:02EXetoCoften after running the application for quite some time
19:49:10Sergio965Python is great for small to medium projects. I am of the school of thought that for large projects, you need static typing.
19:49:36AraqSergio965: I don't need to give it a chance, I studied enough languages to know how it works
19:49:58EXetoCand once at the end when it was supposed to write json data to a file
19:50:07Araqand the type system encourages races just like C encourages buffer overflows
19:50:31Araqit runs single threaded on their app service for a reason
19:51:04fowlSergio965, once you use multiple-dispatch you will never want to go back to bound methods
19:51:07Sergio965As for the error messages, yesterday, for example, I had that pointer declared like: var p: ptr = cast[ptr](0x1000), or the correct syntax. I then tried to do p[] = 'A' for which I got a very strange error messages about mismatched types and what it expected.
19:51:19Araqit recently got a runtime race detector for a reason
19:52:51Sergio965How does the type system encourage races?
19:53:39Araqit's very easy to capture a variable in a closure and access it concurrently
19:53:39Sergio965(the solution was to do ptr char instead of just ptr).
19:54:16Sergio965How is that Go's problem?
19:54:48Sergio965If you ever share memory, you're going to have races.
19:55:05Araqnope, static typing can prevent them
19:55:34Sergio965Go is statically typed.
19:55:38Araqsee?
19:56:44Sergio965Sorry, perhaps I don't understand enough about type systems, but how can static typing prevent data races?
19:57:00dom96Sergio965: In regards to the cryptic error messages. Could you give us a quoted example and then suggest how you think it can be improved?
19:57:27Sergio965dom96: Will do.
19:57:44Sergio965dom96: (Once I'm back in the lab.)
19:58:03dom96Sergio965: great.
19:58:29AraqSergio965: there is lots of literature about it, I'm working on a blog post how it will work in Nimrod
19:58:46gradhaAraq: what? You have a blog?
19:59:29Sergio965Araq: Without locking?
20:00:09AraqSergio965: locking is mostly orthogonal to a type system
20:00:37Araqgradha: well I finished my first blog post, still working on the website ... :P
20:00:53Sergio965I concur. What's the gist of your idea? I believe I understand what static typing is and I cannot fathom how it can be used to wholly prevent data races.
20:01:43gradhaAraq: nice, I recently started playing with static blog generation at https://github.com/gradha/gradha.github.io, I tried jekyll but would refuse to install or break my other ruby stuff so ended up with python
20:01:59*fowl quit (Changing host)
20:01:59*fowl joined #nimrod
20:02:17Sergio965gradha: Isn't Jekyll a gem? Why would it break your other stuff?
20:02:59fowlgradha, you just gem install jekyll, newb
20:03:00gradhabecause to use jekyll you need to install some other fancy stuff, which when installed doesn't work with previous older stuff, plus in the middle of the installation it downloaded gems which would not compile themselves
20:03:17dom96fowl: If only it were that simple.
20:03:26Sergio965It is with bundler.
20:03:30dom96Funnily enough the problem for me was Python.
20:03:31gradhafowl: indeed, I did that, and if failed hard, so hard it left my local gems in an unusable state and had to recover from a backup
20:03:56Sergio965http://gembundler.com/
20:04:06AraqSergio965: everything that is shared needs to be annotated as shared explicitly and read/write accesses to a shared type can only happen in a "lock" or "atomic" section
20:04:34Araqyou can easily special case atomicInc etc. and also CAS
20:04:52fowlgradha, i just installed it, no problems here
20:04:58fowlmaybe its that broken BSD stuff you call os x
20:05:24Sergio965Araq: Ah, but that's augmenting the typical type system. Sure, I agree that a complex type system (when used correctly) can prevent data races.
20:05:34gradhafowl: it surely is, maybe I should install a vm to run ruby software under windows…
20:05:57Sergio965Windows? That's your problem.
20:06:05AraqSergio965: but you can't expect to support a hard thing like concurrency without augmenting the type system
20:06:05fowlwindows is generally more reliable than os x
20:06:11Sergio965Ruby + Windows = not so great.
20:06:17Sergio965Say what?
20:06:17gradhaSergio965: millions use it, can't be wrong
20:06:43Sergio965Windows is a great OS for most things, but I have found it to be terrible for most everything I do.
20:07:06Sergio965Mostly, I love Unix.
20:07:35gradhafowl: maybe you can help me debug the ruby installation stuff?
20:07:41EXetoChere's to unix!
20:07:47EXetoChm, where's my milk?
20:08:04fowlgradha, i can soon, but not today
20:08:25fowlgradha, i have to go out and make some $ today
20:08:26gradhastill, even if I run jekyll my redmine will stop working
20:08:41gradhaunless I update it too, I guess
20:08:45fowlim the guy on the side of the road with the "javascript kills" sign
20:08:57fowlredmine? the issue tracker?
20:09:01gradhayep
20:09:28Sergio965Araq: I completely agree. But it introduces an additional level of complexity and burden to the programmer. Now, I have to remember more and more about what each variable is. Further, I have to remember to label (type) my variables correctly. Abstractions remove some of the cognitive load. In Go, for example, channels provide an easy to understand and efficient way to deal with concurrency and race conditions.
20:10:12Araqit's not an additional level of complexity really
20:10:25gradhafowl: so you are going to go and kill some javascript user?
20:10:44Araqwhen I develop multi threaded software in C# I have to do exactly that: keep in mind what's "shared" and what's not
20:10:46fowlgradha, no im going to fly a sign that says i need $ for a bus pass
20:10:51fowlwhich is true, thats what i use it for
20:11:03Sergio965Of course it is. If I forget to mark a variable shared and I use it as if it's shared, I will very unexpected results.
20:11:09Sergio965Perhaps it's simply two sides of the same coin.
20:11:13Araqand if it is shared, I need to "lock" it
20:11:28Araqit makes perfect sense to add it the type system
20:11:32Araq*to the
20:11:58Sergio965Hmm, yeah. I can certainly see the argument for it.
20:12:01Araqit's much like dynamic typing in python
20:12:37AraqIgnoring types at development in a dynamically typed language does not produce code that magically works; what dynamic typing really does is: It offloads the type
20:12:38Araqchecking to the poor human programmer for no good reason.
20:12:40Sergio965Are there coroutines in Nimrod?
20:12:53gradhaok, made a copy of my gems, now let's unleash hell: gem install jekyll
20:13:40AraqSergio965: no we only got python-like generators
20:14:29Sergio965I found the ability to model both data synchronization and coroutines with channels in Go to be immensely useful.
20:14:52EXetoCis there a print function that prints the expression in addition to the value?
20:15:21AraqEXetoC: there is a debug macro in the manual/tutorial
20:15:30EXetoCthanks
20:16:48AraqSergio965: conflating concurrency and control flow sucks
20:17:40Araq'yield' is control flow, don't make me check for races just because you only got "goroutines"
20:18:05Araqthese things should be kept separate
20:19:06Araqlikewise don't misuse concurrency for exception handling; exception handling is deterministic; concurrency is not
20:20:07Sergio965Where does the latter happen?
20:21:47AraqRust tried the latter, nowadays it got a Lisp style condition system instead that apparently nobody uses
20:22:26EXetoCthat macro?
20:22:28Sergio965And are you advocating for only every using one abstraction for one thing? Channels do one thing: they synchronize the execution of two concurrently running routines.
20:23:02Sergio965I don't think being able to use it to multiple effects is inherently poor design.
20:23:35Araqit is poor design because the abstraction is too powerful
20:23:50Araqyou want Nimrod's iterators but instead you use a concurrency mechanism
20:23:54Sergio965So then you are advocating against powerful abstractions?
20:24:11Sergio965(Simply trying to understand your argument.)
20:24:42AraqI'm advocating against using non deterministic contructs for emulating deterministic ones
20:24:56Araqjust because it "keeps the language small this way"
20:25:23gradhafowl: there you go http://pastebin.com/bPy1qy7e though I really don't care about it, just like I close websites if they load flash I uninstall software that refuses to work
20:25:56fowlgradha, it installed fine, thats rdoc or ri that failed
20:26:00fowl(documentation)
20:26:55gradhaso in theory I could update redmine and live happy with half broken gems?
20:27:13Sergio965gradha: They're not broken. What failed was the building of the documentation.
20:27:25fowlgradha, they arent broken..just the documentation
20:27:32Sergio965Try adding --no-ri --no-rdoc to the gem command.
20:27:33fowlis missing
20:27:56gradhamaybe rubyist don't need stinking docs?
20:28:04Sergio965Araq: I think that's a fair argument.
20:28:24Sergio965Araq: But I also believe that there are fair arguments for such constructs.
20:28:38Sergio965Araq: Well, very specific instances of them, like channels.
20:28:48AraqNimrod has channels btw
20:28:58Araqit's just that we don't use them for iterators
20:29:05Araqbecause that's brain dead
20:29:09Sergio965Lol
20:29:14Sergio965Go doesn't use them for iterators either.
20:29:24Sergio965Well.
20:29:54Sergio965I don't. I haven't seen it advocated for by anybody at Google.
20:30:43AraqI read a blog post from the developers iirc
20:30:56Araqwhere they show how to write an iterator using channels
20:31:03Araqbut I could be wrong
20:31:13Sergio965Yeah, I've certainly seen it too.
20:31:21gradhafowl: are the docs always generated last or could there be some other dependency left unprocessed and give problems in the future?
20:31:41Sergio965But I saw Rob Pike's talk about GoRoutine patterns, and he didn't mention iterators as one of them.
20:31:52Sergio965gradha: Just do --no-ri --no-rdoc.
20:31:54fowlgradha, bro i can only say this so many times, the install was fine, just the docs messed up
20:32:06fowlthere's no need to do that --no-ri --no-rdoc, its already installed
20:32:11fowluse those in the future though
20:32:26Sergio965fowl: Indeed. But I feel like he needs to see it succeed to feel comfortable.
20:32:55gradhawell, when you know nothing about X, and installation throws up a screen of errors which google doesn't show anything about... you are left wondering if its safe
20:33:39gradhaI've had previous cases were a debian package would not process and leave other dependencies half installed, giving subtle problems in the future
20:34:14Sergio965Or you could just do --no-ri --no-rdoc, see it succeed, and be content. :)
20:34:53gradhaSergio965: sure, but I know about that now, not the several times I've tried to install gems and something failed like that
20:35:08gradhanot precisely a newbie friendly installation process
20:35:10Sergio965Araq: Now I'm curious. Which languages _do_ you like?
20:39:15Araqsyntactically? nothing except Nimrod. Semantically? Ada and Modula 3
20:40:03Araqand ML but that's in a class of its own
20:40:47Sergio965Do you like OCaml?
20:42:21Araqnot that much
20:43:05Araqif your type system needs to special case "array of float" for efficiency, your type system is wrong IMHO
20:56:16EXetoCseems like an odd corner case
21:06:06EXetoCtwo-space indentation is disorienting sometimes
21:06:31EXetoCmy eyesight isn't the best though
21:08:31*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:11:50EXetoCI'm having a go at fixing this skModule issue, but I'll have to build the compiler with debug stuff on I guess
21:17:44*Sergio965 joined #nimrod
21:19:08EXetoCwho is adding those awful windows newlines? :>
21:19:29gradhasounds like you are using vim
21:19:49Sergio965Why wouldn't he? Vim is god's editor, if there is a god.
21:20:07EXetoCfo shizzle!
21:24:40EXetoCunix line endings seems to be the de facto standard, and this can be automated with git, which is nice
21:25:09Araqon windows windows line endings are the de facto standard ...
21:26:46*gradha remembers the first rule of the tautology club, which is the first rule of the tautology club
21:28:14Araqwindows still has 80% market share ...
21:29:20Sergio965Not when it comes to programmers.
21:29:47gradhais the market share inside the windows platform still 80% xp?
21:30:35gradhaI listen to the security now podcast and they will have to pry their xp from their cold dead fingers...
21:30:53EXetoCI meant for open source code, but maybe I'm wrong. anyway, Sergio965 is probably right on that one :>
21:31:34gradhathey even have a countdown of official support days for xp or something like that, still a year IIRC
21:33:29gradhahttp://blogs.windows.com/windows/b/springboard/archive/2013/04/08/365-days-remaining-until-xp-end-of-support-the-countdown-begins.aspx
21:34:03gradhaso we still have about 284 days of xp support, phew
21:37:21EXetoCdo I have to explicitly enable something in order to get a compiler stack trace (when release isn't defined of course)?
21:38:00gradhanot compiling with -d:release should be enough
21:39:00EXetoCgradha: you know what? I never actually installed the package :> works now
21:39:00gradhajust ./koch boot gives me stacktraces when I need to report them, maybe you are running a different binary on your $PATH?
21:39:57gradhaI have a script which compiles me a nimrodd for debug and nimrod for release, so I have both at the same time on my path and can switch to one or the other any time
21:40:34gradhabecause you really don't want to use a debug version for idetools support
21:42:32EXetoCyeah
21:45:53Araqwho uses idetools? I thought it's unusable ...
21:47:03gradhaactually I've been using it less lately because zahary_ "improved" the vim integration to the point it works less than previously
21:47:08EXetoC"proc expr(p: BProc, n: PNode, d: var TLoc)" so n.kind == nkSym and n.sym.Kind == skModule, so it takes this branch: else: InternalError(n.info, "expr(" & $sym.kind & "); unknown symbol")
21:47:56AraqEXetoC: that's the easy part. the question is why the frontend didn't eliminate the skModule sym
21:49:14EXetoCAraq: I don't know, but I insert this into my ASTnewCall("invariant", firstparam) and invariant is also the name of the module which is the problem
21:50:22Araqbtw you know 'assert' already exists, right?
21:52:51EXetoCAraq: yes. this is for defining type invariants
21:55:28EXetoCor rather registering a function with some invariant, which will then be called at the beginning of the function, and right before any values are returned
21:57:35Araqreturn x --> (let y = x; invariant(y); return y) seems to be the hardest part of it
21:58:33EXetoCI guess so
22:03:48EXetoCactually, the argument of invariant would be that of the first argument of the caller, but that doesn't change much
22:05:32*q66 quit (Remote host closed the connection)
22:06:03EXetoCno wait, maybe it's skMacro
22:06:14*OrionPK joined #nimrod
22:09:10EXetoCyup...
22:12:12OrionPKso anyone know anything about this SSL issue with windows?
22:12:24OrionPKcould not import: CRYPTO_set_mem_functions
22:12:37OrionPKbasically can't use httpclient, or anything depending on it
22:13:42*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
22:14:33EXetoCso I get an exception when just the macro that contains newCall("invariant", firstparam) is called invariant, but when both the macro and the module is named the same, then skMacro gets passed to ccgexprs.expr, which isn't handled
22:14:54AraqOrionPK: it shouldn't support SSL unless you passed -d:ssl to the compiler
22:15:08EXetoCI know, I should create a test case and/or report a bug
22:15:09OrionPKAraq: yep, that's there
22:15:37OrionPKwithout that, I just get a "Cannot connect over SSL" error
22:15:55OrionPKnot "could not import CRYPTO_set_mem_functions"
22:16:13Araqyeah well ... so you need SSL support
22:16:26OrionPKbabel does
22:17:28Araqdo you have ssleay32.dll?
22:17:52OrionPKyeah
22:18:16OrionPKwithout that I would get could not load: (ssleay32|libssl32).dll
22:18:32OrionPKbrb
22:18:49OrionPKLoadLibrary succeeds
22:19:15Araqopen wrappers/openssl.nim
22:19:21Araqline 272
22:19:34Araqwrap that call in an 'when not defined(windows)'
22:20:22Araqand that code looks suspicious anyway
22:21:40OrionPKk, 2 secs
22:23:19OrionPKnow it's ERR_load_BIO_strings
22:23:28OrionPKinstead of CRYPTO_set_mem_functions
22:25:08Araqedit line 199
22:25:46Araqchang the dynlib to DLLUtilName
22:27:26OrionPKalso had to switch OpenSSL_add_all_algorithms
22:27:29OrionPKto DLLUtilName
22:27:33OrionPKbut now she works
22:27:48Araqplease submit a pull request
22:27:52OrionPKmmk
22:28:05Araqoh well, never mind
22:28:15OrionPKI can test it on my mac as well...
22:28:16OrionPKhm?
22:28:25Araqthat would be great
22:30:33dom96shouldn't dead code elimination take care of these errors?
22:30:46Araqdom96: you do call these
22:31:03Araqthe compiler can't eliminate code that's really used
22:32:00dom96how does getting rid of it on Windows help then?
22:32:25Araqwe only got rid of set_mem_functions
22:32:35OrionPKyeap, still works on my mac w/ the modified code
22:32:42Araqwhich means openssl will use its own memory allocator
22:32:43OrionPKdont have a linux comp to test on
22:33:00Araqhardly a loss
22:46:32reactormonkhow do I control the eval-or-not in templates? http://sprunge.us/BOUN
22:48:45Araqwhy is that an interesting question for your wrong template?
22:57:08reactormonkwrong template?
22:59:51reactormonkallocate space, copy stuff into it. Problem?
23:00:49Araqvar to: T # seriously?
23:01:08Araqmemcpy(from, to) # seriously? no 3rd argument?
23:01:20Araqand isn't the order (dest, src)?
23:01:28reactormonknot sure, can do that
23:01:35reactormonkyup, no third argument. We have types here.
23:01:47Araqprog_ptr[T] # seriously? no need to declare T?
23:02:11reactormonkforgot that part
23:02:58reactormonkhttp://sprunge.us/AfbY
23:03:02reactormonknow you have three arguments
23:04:42Araqnow 'to' is unused
23:04:50Araqand there are still only 2 arguments
23:10:47OrionPKhrm.. babel has further issues it looks like
23:11:02OrionPKtrying to get a tempdir in downloadPkg
23:11:17OrionPKNo such file or directory
23:11:57reactormonkAraq, why do I need a third argument?
23:12:39Araqreactormonk: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.14.html#memcpy
23:12:40dom96OrionPK: indeed. I never tested it on Windows. The code is probably very linux specific.
23:12:51OrionPKpresumably other platforms will automagically create the directory
23:12:55OrionPKor something
23:13:14Araqnah, it's something else
23:13:46OrionPKor something with executing git?
23:13:51OrionPK"fatal: could not create work tree dir"
23:16:18reactormonkAraq, well, my size comes from the type
23:16:37reactormonkproc memcpy[T](dest: ptr T, pgm: prog_ptr[T]) that's the signature. I query the size via sizeof(T)
23:17:21dom96OrionPK: Perhaps on Windows, git can't create the directory structure that babel passes to it?
23:17:22Araqreactormonk: give it a real name then, that's just confusing
23:17:34Araqgood night
23:17:55dom96OrionPK: Try running 'git clone urlhere C:/some/download/path/which/doesn't/exist', and see if it creates it
23:17:57OrionPKdom96 perhaps.. i'll try running the command from the shell
23:17:57reactormonkAraq, gimme a better name then.
23:25:14OrionPKdom96: yeah, the git clone command itself is failing
23:25:14OrionPK No such file or directory
23:25:14reactormonkOrionPK, uh-oh
23:25:14dom96OrionPK: weird. Add a createDir(downloadDir) after babel.nim:245 I guess.
23:25:15OrionPKyeah it gets further now ;)
23:25:25OrionPKgit exits abnormally though
23:25:58OrionPK The system cannot find the file specified
23:50:29*Sergio965 quit (Ping timeout: 248 seconds)