<<02-01-2013>>

00:19:07NimBotAraq/Nimrod 963b93c Araq [+0 ±6 -0]: next steps for FFI at compile time
00:19:25ZorAraq: poke
00:19:58AraqZor: ping, but be quick
00:20:03AraqI need to sleep
00:21:23Zorwhen importing from other libs in nimrod, are the sources required to be present?
00:21:43Zoror do you have interface files or something
00:22:08AraqZor: we have ".rod" files but they are not stable yet and not supposed for code hiding
00:23:08Araqyou need to pass --symbolFiles:on; then incremental builds are active
00:23:46Zorso what are the long term plans? I imagine not everyone will want to ship their source along with their library (sadly ;)
00:23:50Araqyou can use DLLs for code protection, the GC works across DLL boundaries if you built the stdlib as a DLL
00:24:32Zorwell, how does the compiler know what types and functions a dll exports?
00:24:45Araqthere is a pragma for dllexport
00:24:57Zorwhat about static libs? and so on
00:25:04Araq'exportc, dynlib' I think is the combination
00:25:18Araqyou can also make the compiler generate a C header file
00:25:24Araqc2nim the header file
00:25:35Araqand have all the options that you have in C/C++
00:26:12Araqand you'll get all the linker fun that you have in C/C++ ;-)
00:27:10Araqtime is up, good night
00:27:16Zornight
01:56:10*shevy joined #nimrod
03:16:29fowlAraq: pong
04:18:36*fowl joined #nimrod
06:34:25*fowl joined #nimrod
06:43:45*fowl joined #nimrod
07:52:07reactormonkAraq, may. Doesn't work.
07:52:40reactormonkoh wait. it works.
08:03:08reactormonkoh, and imho idetools is a bit too slow... nimrod idetools --stdout --track:foo.nim,2,28 --suggest foo.nim 2> /dev/null 0.57s user 0.02s system 99% cpu 0.598 total
08:03:34reactormonksucks with emacs, where you have to call stuff sync. Means you have at least 0.6s delay
08:12:05*Araq_ joined #nimrod
10:28:37*fowl_ joined #nimrod
10:29:37*fowl joined #nimrod
11:42:06*q66 joined #nimrod
12:04:27*gradha joined #nimrod
12:07:16gradhadom96: I was thinking of adding https://github.com/gradha/epak to babel but since it uses a C part which has to be installed first I wanted to test first things locally
12:07:45gradhawhen you are back tell me if there's any way I could "simulate" using babel as an end user for the purpose of testing installation and stuff
12:39:21dom96gradha: You can use `babel install` in any directory which contains a .babel file. Hopefully that's enough for your purposes.
12:43:50dom96Babel does not yet allow you to execute any custom commands, so you might not be able to install the C part of your lib.
15:54:08*gradha joined #nimrod
15:54:34gradhadom96: yeah, it sort of depends on if you consider babel just a repository of libraries or a full blown package manager installer like apt-get
15:54:53gradhabtw, the irc nimbot doesn't seem to track channel exits now, bug?
15:55:06dom96yeah, it's a known bug.
15:55:43dom96Need to restart it to fix it. But then after the restart today's logs will be overwritten.
15:56:31gradhamaybe that eval thing Araq will do would allow implementing a basic skeleton which reloads code on demand and hence nimrod emulates erlang?
15:56:56gradhaI guess you can already do it if you split a nimrod program in two, one of them being a dynamical library loaded with dynlib
15:56:58dom96Yeah, that would be awesome.
15:58:38dom96As soon as Araq fixes the marshal bug, it won't be a problem.
16:04:20dom96I should attempt to create a plugin system for aporia with dynlib though. That might be nice.
16:04:57dom96bbl
16:46:46dom96gradha: btw new nimbuild is up, you still want to donate your Mac to the cause? :P
16:51:04gradhadefine "donate"
16:51:11gradhajust created https://github.com/nimrod-code/babel/issues/2 so you can have fun
16:52:03dom96Perhaps donate is too strong a word
16:52:19gradhajust kidding, of course I want
16:52:23dom96lol
16:52:29gradhatell me where should I send the money
16:54:25dom96Just send your credit card to: 80 Nigeria Place, Nigeria. Addressed to: Dom's Nigerian Uncle :P
16:54:53gradhathe whole credit card? man, in the old days the number was enough
16:56:19dom96hehe.
16:56:58dom96But seriously. So what do you actually want to do? Running the builder every x days should be fine if you don't want to keep your mac running 24/7.
16:57:34gradhaI tend to have the mac running 24/7 anyway, but it has to be able to deal with the occasional poweroff
16:57:55gradhaor lack of internet connection
16:58:35dom96Loss of connection should be ok.
16:59:02dom96You could make it autostart for the case when your mac restarts.
16:59:44gradhacan't I put it in an hourly cron?
17:00:47dom96I guess you could. But it's designed to receive a message from the website when someone commits.
17:01:25dom96Also, currently there is no way to tell it "Build the latest commit, but only if you haven't built it yet"
17:01:32dom96I can implement that if you wish
17:01:35gradhaoh, so it's actually a daemon, then it startup makes more sense
17:02:10gradhaI guess you would need that if the commit happens while the machine is offline
17:02:43dom96yeah, but it's no big deal if it misses a commit.
17:02:58dom96also you will need screen to run it as a daemon
17:03:11gradhahave it
17:03:40dom96You should be able to run it in screen from crontab somehow.
17:03:56*dom96 can't remember the command
17:04:40gradhaso basically it's not a daemon but a program which you run inside screen?
17:04:49dom96yep.
17:07:18gradhanot much info at https://github.com/nimrod-code/nimbuild regarding installation and setup
17:07:59dom96Yeah, well, since you need a password. I figure people will ask me anyway :P
17:08:23gradhaah, the difference between knowing and not knowing
17:09:02dom96I guess it would be a good idea to have a document I can just link to.
17:09:10dom96Anyway, clone Nimrod, clone nimbuil
17:09:12dom96d
17:09:27dom96compile builder.nim
17:10:47dom96gradha: what version of mac os x do you have?
17:11:00gradhalion, 10.7.5
17:11:23*dom96 wonders if the version matters much
17:12:08gradhait may matter more because of xcode version
17:12:17dom96last guy that "donated" some machines gave us two: 10.6.8 (I guess) and 10.5.8
17:12:35AraqI have 10.4. :P
17:12:58Araqbut I won't touch it again
17:13:40Araqbabel/issues/2 could be because the files you mention have no extension, gradha
17:13:51dom96gradha: what cpu?
17:14:07gradha2.66Ghz intel core 2 duo
17:14:09*Araq considers a file without an extension an abomination
17:14:20dom96gradha: er, architecture?
17:14:40gradhax86_64
17:14:49gradhaunless you specify i386 for the compiler
17:15:55gradhaah, one thing, nimrod didn't work for me unless I compiled with clang instead of gcc
17:16:15gradhaI keep that as a private branch on my checkout, but I guess builder won't be aware of that
17:16:26dom96argh, yeah.
17:16:29Araqgradha: I think zahary1 fixed that ...
17:16:44Araqhe hasn't pushed it though
17:16:45gradhahmm... I guess the git update part should be enough for that
17:17:04dom96the builder gets rid of any changes you make to the repo.
17:17:43gradhawell, let's suppose it works ok for now, will come to that later if it keeps spewing errors
17:18:06dom96Well, even if it fails. It'll be a constant reminder to fix it :P
17:18:45gradhaAraq: any idea what was causing the problem?
17:19:17Araqafaik I nice GC bug where it frees a sequence too early
17:20:04dom96ok, sent you the config in PM
17:20:19dom96It goes without saying, don't give the passwords to anyone :P
17:20:38dom96make sure to change the *path at the top
17:20:56gradhayou need to tell me were to out the file too, builder?
17:21:08dom96hrm?
17:21:26gradhawhere do I put the macosx.ini file
17:21:31dom96it doesn't matter.
17:21:38dom96Just start the builder like this:
17:21:43dom96./builder pathToIniFile
17:21:54gradhaok
17:21:58gradhainside a screen session
17:22:01dom96yes
17:22:24dom96after you confirm that it works change requestNewest to false.
17:22:33dom96or just comment it out
17:22:43dom96so that it doesn't rebuild the newest commit every time it's started
17:23:43dom96hrm, I should restart the windows builder.
17:23:49dom96if the windows machine is still alive
17:26:32gradhaso what happened to the previous mac donator?
17:27:05gradhawas he last seen howling to the moon during a cold night?
17:29:43gradhawhat kind of file growth should I expect from the directories for builds/archives? being on a laptop means I have to keep an eye on free space
17:32:02dom96Argh. I forgot to make it delete the outgoing files.
17:33:20dom96I can implement that if you want, or you can schedule a cron job to delete outgoing/commits/macosx-x86_64
17:33:46dom96But ugh.
17:33:54dom96I'll implement it.
17:36:35gradhaouch, 669MB free on one partition
17:36:45gradhagood thing I picked the other one
17:44:13dom96gradha: Join #nimbuild :)
18:30:10*XAMPP_ joined #nimrod
19:35:10*AlexLibman joined #nimrod
22:02:03gradhadoes the pdf documentation get generated for somebody else? Just run koch web and latex fails on tut2 http://pastebin.com/M7Wbxhmd
22:02:23gradhalooks like the exception hierarchy I added to the tutorial makes it choke
22:05:49Araqoh yeah, wanted to tell you this :P
22:06:05Araqjust make it an ascii art with '::'
22:06:37reactormonkdom96, is it just me or are 0.6sec a bit too slow for suggestions?
22:07:02Araqreactormonk: we're well aware of this problem
22:07:17reactormonkAraq, daemon? :-/
22:07:25Araqbtw it should be faster when you use -d:release for the bootstrapping
22:07:34reactormonklet's see
22:07:44Araqyeah, indeed, we're working on a demon
22:07:59reactormonkyour own protocol? swank?
22:08:20Araqown protocol
22:08:28reactormonkcomplicated?
22:08:34Araqidea is that you pass the command line via a socket
22:09:00Araqso it should be dead simple :P
22:09:05reactormonkAraq, whut, it goes down to 0.1s
22:09:21reactormonkthat's fine.
22:10:41Araqa debugging build is 5x slower, yeah
22:12:17reactormonkor rather, a non-debugging build is 5x faster
22:16:47gradhanot being able to parse parameters with a space is a problem
22:17:45Araqgradha: -p:"with space" should work I think
22:20:37gradhanope
22:21:05Araqhrm
22:21:24gradhaI already tried several escaping tricks when I created https://github.com/Araq/Nimrod/issues/274 but none seemed to work
22:21:52Araq--path:"with space" *should* work in a .cfg file
22:25:34gradhanice http://pastebin.com/Z7cRNttG
22:27:42dom96interesting. It hasn't occurred to me to try the new async suggest in release mode.
22:28:28gradhais it faster?
22:28:41dom96yep. Read up ^^
22:29:29gradhaso nimrod in release is x5 faster, aporia in release another x5 faster, how much does it have until c?
22:34:14Araqif you know what you're doing you lose a few percent against C
22:35:01gradhacrap, forgot you are all case insensitive people. I was meaning c == speed of light. Sorry for the bad joke
22:35:44Araqwell tbh I wondered if you mean C or c ;-)
22:44:26gradhaAraq: the fact that json.JObject uses a sequence of tuples instead of an associative array is because then you can recreate the same sorting order on the output should you wish to or just chance?
22:45:18Araqgradha: recreate the same order, yes
22:46:09Araqplus it saves memory a bit this way and I don't expect people to have more than 20 key-value pairs anyway
22:48:53gradhait's amazing when a program doesn't implement a stable sort for something and it freaks me out
23:57:02reactormonkAraq, bash parsing is a bit fun
23:57:18reactormonkAraq, can't you got the route of using : and -- as beginning/end of string?
23:57:38reactormonkerrr, stupid idea.
23:57:58reactormonkBut doesn't -p:"with space" work because it's delivered as a single argument in ARGV?