00:19:07 | NimBot | Araq/Nimrod 963b93c Araq [+0 ±6 -0]: next steps for FFI at compile time |
00:19:25 | Zor | Araq: poke |
00:19:58 | Araq | Zor: ping, but be quick |
00:20:03 | Araq | I need to sleep |
00:21:23 | Zor | when importing from other libs in nimrod, are the sources required to be present? |
00:21:43 | Zor | or do you have interface files or something |
00:22:08 | Araq | Zor: we have ".rod" files but they are not stable yet and not supposed for code hiding |
00:23:08 | Araq | you need to pass --symbolFiles:on; then incremental builds are active |
00:23:46 | Zor | so what are the long term plans? I imagine not everyone will want to ship their source along with their library (sadly ;) |
00:23:50 | Araq | you can use DLLs for code protection, the GC works across DLL boundaries if you built the stdlib as a DLL |
00:24:32 | Zor | well, how does the compiler know what types and functions a dll exports? |
00:24:45 | Araq | there is a pragma for dllexport |
00:24:57 | Zor | what about static libs? and so on |
00:25:04 | Araq | 'exportc, dynlib' I think is the combination |
00:25:18 | Araq | you can also make the compiler generate a C header file |
00:25:24 | Araq | c2nim the header file |
00:25:35 | Araq | and have all the options that you have in C/C++ |
00:26:12 | Araq | and you'll get all the linker fun that you have in C/C++ ;-) |
00:27:10 | Araq | time is up, good night |
00:27:16 | Zor | night |
01:56:10 | * | shevy joined #nimrod |
03:16:29 | fowl | Araq: pong |
04:18:36 | * | fowl joined #nimrod |
06:34:25 | * | fowl joined #nimrod |
06:43:45 | * | fowl joined #nimrod |
07:52:07 | reactormonk | Araq, may. Doesn't work. |
07:52:40 | reactormonk | oh wait. it works. |
08:03:08 | reactormonk | oh, 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:34 | reactormonk | sucks 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:16 | gradha | dom96: 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:45 | gradha | when 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:21 | dom96 | gradha: You can use `babel install` in any directory which contains a .babel file. Hopefully that's enough for your purposes. |
12:43:50 | dom96 | Babel 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:34 | gradha | dom96: 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:53 | gradha | btw, the irc nimbot doesn't seem to track channel exits now, bug? |
15:55:06 | dom96 | yeah, it's a known bug. |
15:55:43 | dom96 | Need to restart it to fix it. But then after the restart today's logs will be overwritten. |
15:56:31 | gradha | maybe that eval thing Araq will do would allow implementing a basic skeleton which reloads code on demand and hence nimrod emulates erlang? |
15:56:56 | gradha | I 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:58 | dom96 | Yeah, that would be awesome. |
15:58:38 | dom96 | As soon as Araq fixes the marshal bug, it won't be a problem. |
16:04:20 | dom96 | I should attempt to create a plugin system for aporia with dynlib though. That might be nice. |
16:04:57 | dom96 | bbl |
16:46:46 | dom96 | gradha: btw new nimbuild is up, you still want to donate your Mac to the cause? :P |
16:51:04 | gradha | define "donate" |
16:51:11 | gradha | just created https://github.com/nimrod-code/babel/issues/2 so you can have fun |
16:52:03 | dom96 | Perhaps donate is too strong a word |
16:52:19 | gradha | just kidding, of course I want |
16:52:23 | dom96 | lol |
16:52:29 | gradha | tell me where should I send the money |
16:54:25 | dom96 | Just send your credit card to: 80 Nigeria Place, Nigeria. Addressed to: Dom's Nigerian Uncle :P |
16:54:53 | gradha | the whole credit card? man, in the old days the number was enough |
16:56:19 | dom96 | hehe. |
16:56:58 | dom96 | But 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:34 | gradha | I tend to have the mac running 24/7 anyway, but it has to be able to deal with the occasional poweroff |
16:57:55 | gradha | or lack of internet connection |
16:58:35 | dom96 | Loss of connection should be ok. |
16:59:02 | dom96 | You could make it autostart for the case when your mac restarts. |
16:59:44 | gradha | can't I put it in an hourly cron? |
17:00:47 | dom96 | I guess you could. But it's designed to receive a message from the website when someone commits. |
17:01:25 | dom96 | Also, currently there is no way to tell it "Build the latest commit, but only if you haven't built it yet" |
17:01:32 | dom96 | I can implement that if you wish |
17:01:35 | gradha | oh, so it's actually a daemon, then it startup makes more sense |
17:02:10 | gradha | I guess you would need that if the commit happens while the machine is offline |
17:02:43 | dom96 | yeah, but it's no big deal if it misses a commit. |
17:02:58 | dom96 | also you will need screen to run it as a daemon |
17:03:11 | gradha | have it |
17:03:40 | dom96 | You should be able to run it in screen from crontab somehow. |
17:03:56 | * | dom96 can't remember the command |
17:04:40 | gradha | so basically it's not a daemon but a program which you run inside screen? |
17:04:49 | dom96 | yep. |
17:07:18 | gradha | not much info at https://github.com/nimrod-code/nimbuild regarding installation and setup |
17:07:59 | dom96 | Yeah, well, since you need a password. I figure people will ask me anyway :P |
17:08:23 | gradha | ah, the difference between knowing and not knowing |
17:09:02 | dom96 | I guess it would be a good idea to have a document I can just link to. |
17:09:10 | dom96 | Anyway, clone Nimrod, clone nimbuil |
17:09:12 | dom96 | d |
17:09:27 | dom96 | compile builder.nim |
17:10:47 | dom96 | gradha: what version of mac os x do you have? |
17:11:00 | gradha | lion, 10.7.5 |
17:11:23 | * | dom96 wonders if the version matters much |
17:12:08 | gradha | it may matter more because of xcode version |
17:12:17 | dom96 | last guy that "donated" some machines gave us two: 10.6.8 (I guess) and 10.5.8 |
17:12:35 | Araq | I have 10.4. :P |
17:12:58 | Araq | but I won't touch it again |
17:13:40 | Araq | babel/issues/2 could be because the files you mention have no extension, gradha |
17:13:51 | dom96 | gradha: what cpu? |
17:14:07 | gradha | 2.66Ghz intel core 2 duo |
17:14:09 | * | Araq considers a file without an extension an abomination |
17:14:20 | dom96 | gradha: er, architecture? |
17:14:40 | gradha | x86_64 |
17:14:49 | gradha | unless you specify i386 for the compiler |
17:15:55 | gradha | ah, one thing, nimrod didn't work for me unless I compiled with clang instead of gcc |
17:16:15 | gradha | I keep that as a private branch on my checkout, but I guess builder won't be aware of that |
17:16:26 | dom96 | argh, yeah. |
17:16:29 | Araq | gradha: I think zahary1 fixed that ... |
17:16:44 | Araq | he hasn't pushed it though |
17:16:45 | gradha | hmm... I guess the git update part should be enough for that |
17:17:04 | dom96 | the builder gets rid of any changes you make to the repo. |
17:17:43 | gradha | well, let's suppose it works ok for now, will come to that later if it keeps spewing errors |
17:18:06 | dom96 | Well, even if it fails. It'll be a constant reminder to fix it :P |
17:18:45 | gradha | Araq: any idea what was causing the problem? |
17:19:17 | Araq | afaik I nice GC bug where it frees a sequence too early |
17:20:04 | dom96 | ok, sent you the config in PM |
17:20:19 | dom96 | It goes without saying, don't give the passwords to anyone :P |
17:20:38 | dom96 | make sure to change the *path at the top |
17:20:56 | gradha | you need to tell me were to out the file too, builder? |
17:21:08 | dom96 | hrm? |
17:21:26 | gradha | where do I put the macosx.ini file |
17:21:31 | dom96 | it doesn't matter. |
17:21:38 | dom96 | Just start the builder like this: |
17:21:43 | dom96 | ./builder pathToIniFile |
17:21:54 | gradha | ok |
17:21:58 | gradha | inside a screen session |
17:22:01 | dom96 | yes |
17:22:24 | dom96 | after you confirm that it works change requestNewest to false. |
17:22:33 | dom96 | or just comment it out |
17:22:43 | dom96 | so that it doesn't rebuild the newest commit every time it's started |
17:23:43 | dom96 | hrm, I should restart the windows builder. |
17:23:49 | dom96 | if the windows machine is still alive |
17:26:32 | gradha | so what happened to the previous mac donator? |
17:27:05 | gradha | was he last seen howling to the moon during a cold night? |
17:29:43 | gradha | what 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:02 | dom96 | Argh. I forgot to make it delete the outgoing files. |
17:33:20 | dom96 | I can implement that if you want, or you can schedule a cron job to delete outgoing/commits/macosx-x86_64 |
17:33:46 | dom96 | But ugh. |
17:33:54 | dom96 | I'll implement it. |
17:36:35 | gradha | ouch, 669MB free on one partition |
17:36:45 | gradha | good thing I picked the other one |
17:44:13 | dom96 | gradha: Join #nimbuild :) |
18:30:10 | * | XAMPP_ joined #nimrod |
19:35:10 | * | AlexLibman joined #nimrod |
22:02:03 | gradha | does the pdf documentation get generated for somebody else? Just run koch web and latex fails on tut2 http://pastebin.com/M7Wbxhmd |
22:02:23 | gradha | looks like the exception hierarchy I added to the tutorial makes it choke |
22:05:49 | Araq | oh yeah, wanted to tell you this :P |
22:06:05 | Araq | just make it an ascii art with '::' |
22:06:37 | reactormonk | dom96, is it just me or are 0.6sec a bit too slow for suggestions? |
22:07:02 | Araq | reactormonk: we're well aware of this problem |
22:07:17 | reactormonk | Araq, daemon? :-/ |
22:07:25 | Araq | btw it should be faster when you use -d:release for the bootstrapping |
22:07:34 | reactormonk | let's see |
22:07:44 | Araq | yeah, indeed, we're working on a demon |
22:07:59 | reactormonk | your own protocol? swank? |
22:08:20 | Araq | own protocol |
22:08:28 | reactormonk | complicated? |
22:08:34 | Araq | idea is that you pass the command line via a socket |
22:09:00 | Araq | so it should be dead simple :P |
22:09:05 | reactormonk | Araq, whut, it goes down to 0.1s |
22:09:21 | reactormonk | that's fine. |
22:10:41 | Araq | a debugging build is 5x slower, yeah |
22:12:17 | reactormonk | or rather, a non-debugging build is 5x faster |
22:16:47 | gradha | not being able to parse parameters with a space is a problem |
22:17:45 | Araq | gradha: -p:"with space" should work I think |
22:20:37 | gradha | nope |
22:21:05 | Araq | hrm |
22:21:24 | gradha | I already tried several escaping tricks when I created https://github.com/Araq/Nimrod/issues/274 but none seemed to work |
22:21:52 | Araq | --path:"with space" *should* work in a .cfg file |
22:25:34 | gradha | nice http://pastebin.com/Z7cRNttG |
22:27:42 | dom96 | interesting. It hasn't occurred to me to try the new async suggest in release mode. |
22:28:28 | gradha | is it faster? |
22:28:41 | dom96 | yep. Read up ^^ |
22:29:29 | gradha | so nimrod in release is x5 faster, aporia in release another x5 faster, how much does it have until c? |
22:34:14 | Araq | if you know what you're doing you lose a few percent against C |
22:35:01 | gradha | crap, forgot you are all case insensitive people. I was meaning c == speed of light. Sorry for the bad joke |
22:35:44 | Araq | well tbh I wondered if you mean C or c ;-) |
22:44:26 | gradha | Araq: 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:18 | Araq | gradha: recreate the same order, yes |
22:46:09 | Araq | plus it saves memory a bit this way and I don't expect people to have more than 20 key-value pairs anyway |
22:48:53 | gradha | it's amazing when a program doesn't implement a stable sort for something and it freaks me out |
23:57:02 | reactormonk | Araq, bash parsing is a bit fun |
23:57:18 | reactormonk | Araq, can't you got the route of using : and -- as beginning/end of string? |
23:57:38 | reactormonk | errr, stupid idea. |
23:57:58 | reactormonk | But doesn't -p:"with space" work because it's delivered as a single argument in ARGV? |