00:21:12 | * | rking quit (Ping timeout: 264 seconds) |
00:25:41 | * | rking joined #nimrod |
02:11:58 | * | shevy joined #nimrod |
02:12:01 | shevy | wheeeeeee |
02:12:32 | Araq | shevy: bad timing |
02:12:40 | Araq | I'm already sleeping |
02:12:46 | shevy | hehe |
02:12:52 | shevy | wheeeeeeee into your bed! |
02:12:59 | shevy | I am just going to wheee |
02:13:56 | Araq | drunk hu? |
02:14:04 | shevy | almost :D |
02:14:09 | shevy | a bit tired... |
02:14:19 | shevy | it's the last energy burst before I get really tired |
02:14:39 | Araq | learn nimrod then, the tutorials constantly get improved |
02:16:43 | NimBot_ | nimrod-code/Aporia 5270969 Dominik Picheta [+1 ±2 -1]: Improved suggest by making it aware of project files. |
02:16:52 | dom96 | And with that I should sleep |
02:17:10 | shevy | Araq eventually I will master it |
02:17:14 | shevy | it's more interesting than python |
02:17:37 | shevy | (as a language... the python docs are still better, but then again the python docs are better than the ruby docs as well) |
02:18:14 | Araq | python docs are more verbose |
02:18:30 | Araq | and I guess yeah, they're better for most people |
02:18:41 | Araq | but we'll get there |
02:19:07 | Araq | however we have type information :P |
02:19:16 | Araq | good night |
03:44:43 | * | q66 quit (Quit: Quit) |
06:24:36 | AlexLibman | I wasn't able to compile aporia - "Aporia-master/utils.nim(58, 22) Error: undeclared identifier: 'PInfoBar'" |
06:25:07 | AlexLibman | I just wanted to check it out though. Won't use a GTK-based program. |
06:28:11 | reactormonk | AlexLibman, use the git version of nimrod |
06:28:24 | AlexLibman | git is GPL :P |
06:30:33 | AlexLibman | Would https://github.com/Araq/Nimrod/archive/master.zip be the latest code? |
06:43:33 | * | XAMPP joined #nimrod |
06:43:36 | * | XAMPP quit (Changing host) |
06:43:36 | * | XAMPP joined #nimrod |
06:44:52 | reactormonk | AlexLibman, ... wtf. Yes. |
06:45:10 | reactormonk | AlexLibman, which source control is BSD? |
06:45:33 | AlexLibman | BSD cvs, fossil, tar... |
06:45:45 | reactormonk | AlexLibman, I usually twich when people talk about how they like open source and use a mac, but you're one level higher ^^ |
06:46:13 | AlexLibman | I run gnu software sometimes, in my "gnushit" jail. |
06:46:52 | reactormonk | AlexLibman, how about using webpages that are not really opensource? ;-) |
06:48:51 | AlexLibman | They do piss me off sometimes, especially slashdot. |
06:49:46 | AlexLibman | Perhaps one of my first nimrod projects (as an add-on to my almighty http cache proxy) would be a Slashcode scraper / parser / message search engine. |
06:49:54 | AlexLibman | I'll dump the SQL to bittorrent, yaay! |
06:49:59 | reactormonk | ^^ |
06:50:44 | AlexLibman | Slashdot is a pain in the ass to scrape. They use many closed-source tricks to prevent it. |
06:51:34 | reactormonk | oh, the comments are ajax |
06:52:14 | reactormonk | or not, if fetched by curl |
06:54:12 | AlexLibman | Try it. You'll spend all night trying to figure out which headers you are missing. |
06:54:20 | reactormonk | huh? |
06:54:36 | AlexLibman | Seriously. Slashdot scraping is what they make you do in the innermost circle of hell. |
06:55:33 | AlexLibman | No wonder that, after all these years, there's no scrape of it anywhere. |
06:55:52 | AlexLibman | And google/archive.org only get the most high-ranking comments. |
06:58:39 | AlexLibman | They do have a somewhat sane flat page-flipping view, but you have to be logged in to access it. And, needless to say, creating many accounts is more difficult than scraping through many proxy IP's. |
06:59:31 | AlexLibman | And there are TONS of data to scrape... |
08:55:07 | AlexLibman | I don't like projects like http://code.google.com/p/brython/ because they waste tons of client resources. Web sites should be optimized for performance. |
08:56:43 | AlexLibman | We need compiled HTML with a more powerful API, a fast way of importing large quantities of data from the server without the need to parse all of it at once, and a choice of scripting languages. |
08:57:25 | AlexLibman | Unfortunately reforming client-side Web tech is like reforming the English language - you won't be understood. |
08:58:17 | Araq | we don't need a choice of scripting languages, we need some low level asm-like language on the browser |
08:59:04 | AlexLibman | I mean a choice of languages that can be compiled into this binary sandboxed in-browser executable. |
08:59:24 | Araq | alright then |
08:59:53 | AlexLibman | Google Native Client was a brilliant idea, but it doesn't replace Web pages, it's just another try at what Java applets offered in 1996... |
09:02:11 | AlexLibman | This would change the way OS'es handle packages too. Instead of `pkg_add app-1.0.txz; app` you'd go to "http://app.org/run/1.0/" (ideally with local caching). |
09:03:03 | Araq | meh and then it performs some update you don't want |
09:03:04 | AlexLibman | File filesystem paradigm becomes Web cache paradigm. Everything is a URL. |
09:04:09 | AlexLibman | Free software should promote standards for how apps operate - publish source code, don't remove old versions, make local caching of app and all data easy (in contrast to Slashdot, if you look at it as an app), etc. |
09:04:55 | Araq | that just Linux's package manager in worse, sorry |
09:05:06 | Araq | over-engineered and breaks quite often |
09:05:56 | AlexLibman | We'll see. New paradigms can be difficult to get used to, even if they're better. |
09:07:22 | AlexLibman | Why remember /usr/local/share/doc/appX when you already remember https://appX.org/doc ... |
09:08:02 | AlexLibman | What we need is common efficient Web caching. Visit a site, click a menu option, and it downloads a compressed archive of the whole site, allowing local offline access, local FTS search, etc. |
09:08:47 | AlexLibman | Price per terabyte keeps falling, but when a Web site hiccups you are helpless. http://xkcd.com/903/ |
09:10:05 | AlexLibman | That's what my "http cache proxy" project idea is all about. (Working title: Prepper Proxy.) |
09:10:52 | AlexLibman | Also that Web browser plugins often make less sense than proxy plugins. Why have a separate AdBlock plugin for every browser? Most plugins would operate better on a "proxy server" by tweaking / injecting HTML5/JS code. |
09:11:10 | AlexLibman | You can also have one proxy server for a whole network. |
09:11:59 | AlexLibman | Just some project ideas I may be working on in the future. Hopefully in Nimrod (if it becomes copyfree). |
09:14:31 | reactormonk | AlexLibman, do you count lines from 0 or 1? |
09:14:35 | reactormonk | err @ Araq |
09:14:43 | AlexLibman | Related Slashdot rant: http://yro.slashdot.org/comments.pl?sid=3288829&cid=42165531 |
09:15:08 | AlexLibman | reactormonk: I count lines from the start of the function, not file. :P |
09:16:25 | reactormonk | AlexLibman, ... that's for nimrod idetools |
09:16:31 | reactormonk | Araq, Return the horizontal position of point. Beginning of line is column 0. This is calculated by adding together the widths of all the displayed representations of the character between the start of the previous line and point (eg. control characters will have a width of 2 or 4, tabs will have a variable width). |
09:16:37 | AlexLibman | With my development environment ideas, the concept of splitting code into files becomes obsolete - a redunancy given more logical grouping into classes, functions, etc. |
09:16:39 | reactormonk | does that work for column? |
09:17:22 | reactormonk | AlexLibman, friend of mine once said that censorship is simply a network failure and the internet routes around it |
09:17:27 | AlexLibman | "Where we are going we don't need roads!" |
09:18:20 | AlexLibman | Yes, all government is failure that civilization routes around, to the degree that it can, and technology is something that empowers it to do so. |
09:19:13 | AlexLibman | (Not to be confused with voluntary governance and governance based on things like Parents' Rights and Contract Rights, which are essential.) |
09:25:59 | reactormonk | AlexLibman, government is there when people run low on energy and don't care anymore. It just tends to get exploited |
09:26:24 | reactormonk | And hierarchies are built into human nature :-/ |
09:26:30 | AlexLibman | Hope you'll read that Slashdot rant. Many technical ideas it hints on would be centered around that Web proxy project I am brainstorming. |
09:27:04 | Araq | reactormonk: lines start at 1, columns at 1 or 0 I can't remember |
09:27:24 | reactormonk | AlexLibman, already did that |
09:27:44 | reactormonk | Araq, could you look it up? Sounds like a nasty bug if I've got the wrong value |
09:28:00 | reactormonk | or wait, just invoke with 0 and see if it works :> |
09:28:07 | AlexLibman | I originally thought of using Node.JS for it, but this proxy project would benefit from being more resource-efficient - to offer an advantage over browser-based add-ons. |
09:29:17 | Araq | reactormonk: at 0 I think |
09:29:21 | reactormonk | Araq, nice |
09:29:41 | reactormonk | Araq, shouldn't nimrod idetools --track:foo.nim,1,0 --suggest spit a shitload from stuff on the stdlib? |
09:29:44 | AlexLibman | One advantage of using Node.JS for that project idea is that existing Web / greasemonkey developers would be able to submit add-ons / scrapers / tweaks / etc more easily, via JS or CoffeeScript. |
09:30:34 | Araq | AlexLibman: my hd is so much more reliable than the net it's not even funny |
09:30:45 | AlexLibman | That's the idea. |
09:30:53 | Araq | so I dislike these "everything should become the web" idea |
09:31:00 | Araq | *ideas |
09:31:09 | reactormonk | Araq, everything on the cloud? |
09:31:22 | AlexLibman | As RAM / SSD / disks become bigger and cheaper, my ideas about local caching will make more and more sense. |
09:31:48 | reactormonk | AlexLibman, and where are you going to store all the instagram pics? ^^ |
09:32:24 | AlexLibman | I don't mean "everything should become the Web" in the sense that everything should be stored remotely, just the opposite. I mean Web as a UI and addressing paradigm, like ChromeOS. |
09:32:41 | reactormonk | AlexLibman, all hail to the DOM |
09:33:26 | AlexLibman | Some sites people would want to local-(preemptive)-cache in full. Others (like YouTube - I'm not familiar with instagram) for just selected channels / searches / etc. With cache shared via P2P. |
09:35:37 | AlexLibman | Take Slashdot for example. When you go there by default, the proxy script just adds a drop-down menubar on top. You go to the Site menu and enable reemptive caching + interface tweaks, and Slashdot transforms into an app running from your hard drive, with a far better interface. |
09:36:03 | AlexLibman | s/reemptive/preemptive/ |
09:36:34 | Araq | the web standards are so fucked up and yet you want to build everything on that architecture? o.O |
09:37:03 | Araq | we need a new web before that, please ;-) |
09:37:37 | AlexLibman | The proxy downloads SQL dumps (with latest patches) from P2P, sets it up on your local PostgreSQL server. If you enable message parsing and FTS indexing, you get much better search features than are offered by Slashdot itself. |
09:38:00 | AlexLibman | The web standards are just the UI. We all have to live with those. Like the English language. |
09:40:30 | AlexLibman | Some problems of the web standards (ex. broken links, lack of revision control, etc) can be fixed with the ideas related to that Web proxy project. |
09:41:59 | AlexLibman | They're also a step toward creating a better Web browser, by taking on some tasks that a Web browser does and making them browser-independent. Chrome still doesn't have all the good plugins that Firefox does. Opera has even less, to say nothing of xombrero. |
09:43:06 | AlexLibman | Then a new browser project doesn't have to worry about cache, add-ons, settings UI, and many other things. |
09:43:40 | reactormonk | Araq, idea about the idetools? |
09:44:15 | Araq | reactormonk: myObj.| # | is the cursor |
09:44:23 | reactormonk | ooh |
09:44:34 | reactormonk | well, what about echo? |
09:44:41 | Araq | that's what it's about and it kind of works :P |
09:47:55 | reactormonk | Araq, I use http://sprunge.us/aMdQ and nimrod idetools --track:foo.nim,2,28 --suggest but no output |
09:49:41 | Araq | reactormonk: works for me in aporia |
09:49:51 | reactormonk | hum |
09:50:14 | Araq | you need to do: |
09:50:26 | Araq | nimrod idetools --track:foo.nim,2,28 --suggest foo.nim |
09:50:41 | Araq | i.e. give it a main.nim file too |
09:50:52 | Araq | (could be different from the track file) |
09:51:33 | reactormonk | oh, cool |
09:52:48 | reactormonk | but... how do I get the main file from a project? |
09:53:22 | Araq | getDir(currentfile)/*.nimrod.cfg -- * is the name of the main file |
09:53:49 | Araq | can be ambiguous :P |
09:54:02 | Araq | or may not exist, then the current file is the main file |
09:54:22 | Araq | in fact, using the current file as the main file is often good enough |
09:55:39 | reactormonk | I currently determine the project dir with git |
09:55:42 | reactormonk | should do for now |
09:56:15 | Araq | yeah I don't get why invoke git here |
09:56:30 | reactormonk | Because I need to know what the project root is |
09:57:18 | Araq | do you? why? |
09:57:32 | reactormonk | So I know which files to copy to my tmpdir |
09:58:33 | Araq | shouldn't that just be the files you have open and unsaved in your editor? |
09:59:47 | reactormonk | what if you have another lib file you depend on and not open yet? |
10:01:18 | Araq | if it's not opened, it's on the hd |
10:01:30 | Araq | and no sync is necessary |
10:01:32 | reactormonk | Yes, but I don't know it should go to the tempdir |
10:04:05 | Araq | why should it? |
10:04:25 | Araq | tempdir is only necessary for unsaved changes |
10:04:49 | reactormonk | and how do I tell idetools where to find the unsaved changes? |
10:05:08 | Araq | --path ? |
10:05:08 | reactormonk | Hmm... --track to the tmpdir? |
10:05:38 | Araq | --track to the tmpdir should be the whole point of using a temp dir |
10:05:53 | reactormonk | so --path and --track to the tempdir? |
10:06:11 | Araq | yeah |
10:06:18 | Araq | I have to go, see you later |
10:06:24 | reactormonk | gotta sleep :-) |
10:07:58 | * | bloouup quit (Ping timeout: 245 seconds) |
10:46:53 | dom96 | AlexLibman: Did you get Aporia working? |
10:47:27 | AlexLibman | Do, busy with other things. |
10:52:15 | AlexLibman | Uninstalled Nimrod v0.9.0. Tried to install Nimrod-master, but build.sh says: |
10:52:27 | AlexLibman | "gcc: build/5_1/system.c: No such file or directory" |
10:52:35 | AlexLibman | "gcc: No input files specified" |
10:52:38 | dom96 | You need to unzip build/csources.zip |
10:55:21 | AlexLibman | Oh, ok. My bad for skipping readme.txt, but it was different for v0.9.0 |
10:57:51 | dom96 | Yeah, I guess there is no reason to zip it when releasing. The reason it's zipped in the repo is so that the diff doesn't show up every time they are changed. |
10:58:29 | * | AlexLibman quit (Read error: Operation timed out) |
11:01:39 | * | AlexLibman joined #nimrod |
11:04:21 | AlexLibman | Weird, my box just instantly shut off and restarted for no reason. But that was after reinstalling nimrod. |
11:05:01 | dom96 | Maybe the CPU got too warm? |
11:05:45 | AlexLibman | Never happened before, and I've had it compiling for many hours. Nimrod compile takes just a minute. |
11:06:08 | AlexLibman | Maybe it's power fluxuations... It's a crummy old building. |
11:12:24 | dom96 | maybe |
11:21:40 | AlexLibman | Aporia still doesn't compile, but I gotta run - will provide full pastebin later. |
11:21:48 | dom96 | alright |
11:21:57 | dom96 | see you later |
12:01:43 | * | q66 joined #nimrod |
12:07:02 | * | AlexLibman quit (Remote host closed the connection) |
12:46:13 | dom96 | Araq: it seems there are no suggestions if I want to suggest after writing a word, i.e. at a cursor location where a dot is not present. |
12:49:05 | Zor | Araq: poke |
12:49:29 | Araq | Zor: I'm around |
12:50:40 | Zor | what kinds of compilation modes does the nimrod compiler support? |
12:51:01 | Zor | e.g. single object file per source file, static libs, shared libs, executables, ... |
12:53:48 | * | zahary1 joined #nimrod |
12:53:50 | * | zahary quit (Read error: Connection reset by peer) |
12:58:59 | Araq | Zor: for now mostly whole program compilation |
12:59:10 | Araq | the stdlib can be built into a DLL |
12:59:21 | Araq | (I use the term DLL for lib*.so too) |
12:59:50 | Araq | and we got incremental compilation mostly working |
13:01:42 | Araq | you can compile a project into a DLL or an exe, not sure how good our staticlib support is |
13:02:29 | Araq | shouldn't be hard, you have full control, you can tell Nimrod not to generate a main() for instance |
13:02:51 | Araq | a Nimrod module is compiled to a single .c file |
13:21:32 | NimBot_ | nimrod-code/Aporia ffb7e01 Dominik Picheta [+0 ±1 -0]: Suggest works on unsaved files now. |
13:21:32 | NimBot_ | nimrod-code/Aporia 8263bc8 Dominik Picheta [+0 ±5 -0]: Status bar message doesn't get overriden by processes.nim anymore.... 2 more lines |
13:21:32 | NimBot_ | nimrod-code/Aporia a9689e5 Dominik Picheta [+0 ±2 -0]: Added UTF-16LE/BE support. |
13:47:08 | * | gradha joined #nimrod |
13:48:16 | gradha | Araq: how should I deal with c2nim bugs? http://pastebin.com/hY4grFFk create a ticket? |
13:49:11 | gradha | here's the file if it helps http://pastebin.com/Nny1cbEU |
13:49:37 | gradha | it comes from a library using heavy C macros to support crossplatform portability, so c2nim just doesn't work on the real source |
13:50:08 | gradha | luckily gcc seems to be able to parse most of the cruft away (using suggestions from http://stackoverflow.com/questions/4900870/can-gcc-output-c-code-after-preprocessing) |
13:55:34 | gradha | meh, guests, see you later |
13:55:36 | * | gradha quit (Quit: Leaving) |
15:53:09 | * | gradha joined #nimrod |
15:56:40 | Araq | gradha: the c2nim error looks like you have some old version of c2nim? |
15:59:23 | gradha | did compile it today for the first time, let me check again |
16:01:00 | gradha | recompiled now compiler/c2nim, still same output |
16:01:57 | Araq | hrm, do you feel like fixing it? |
16:02:39 | gradha | not that I understand what is broken |
16:04:09 | Araq | well I can tell you and it may be faster as you can test it |
16:04:38 | gradha | I'm starting to litter compiler/renderer.nim:gproc with echos |
16:07:05 | Araq | that's unlikely to help :P |
16:07:16 | gradha | but makes me feel like a real programmer |
16:07:35 | Araq | btw there is a 'debug' proc for outputting the internal data structures |
16:07:49 | gradha | isn't repr for that? |
16:08:20 | Araq | debug predates repr and produces less verbose output |
16:08:37 | gradha | do I have to recompile everything for c2nim? |
16:09:14 | Araq | c2nim uses parts of the compiler |
16:09:30 | gradha | ok, the echos are reached |
16:09:57 | Araq | I don't understand your question, you tell nimrod to compile c2nim and it does everything for you |
16:10:03 | Araq | no need to bootstrap |
16:10:35 | gradha | no problem, I was wondering if I needed to recompile nimrod for c2nim to work |
16:14:44 | Araq | brb |
16:15:11 | * | Trix[a]r_za is now known as Trixar_za |
16:21:10 | gradha | so it was choking on "#define AL_MIN(a,b) (((a)<(b))?(a):(b))", removed it and solved |
16:34:44 | Araq | yeah |
16:35:33 | gradha | didn't like "#define AL_INLINE(type, name, args, code) static type name args code" either, but that had an error message so it was easy |
16:35:42 | Araq | the AST format changed ... |
16:35:50 | Araq | fix is "easy" |
16:35:55 | Araq | open c2nim/cpp.nim |
16:37:24 | gradha | eatNewLine, I like that |
16:37:40 | Araq | insert before line 45: |
16:37:49 | Araq | addSon(result, ast.emptyNode) |
16:38:33 | Araq | same after line 63 "no pragmas" |
16:38:39 | Araq | and then it should work again |
16:40:39 | gradha | crap, cpp is buggy too! |
16:41:00 | gradha | it blindly inserts a define somewhere else, including its trailing comment |
16:41:21 | gradha | so it fucks up an array size blah[SIZE] -> blah[4096 //comment] |
16:42:40 | Araq | lol |
16:43:45 | Araq | so ... now that you know how c2nim works, please improve it to a c++2nim ;-) |
16:44:11 | gradha | that implies I use C++, maybe objc |
16:46:28 | gradha | hmm... gcc -E works much better, but prunes unused stuff, so it's not good for library header files |
16:46:54 | Araq | don't run a C preprocessor before c2nim |
16:47:06 | Araq | you'll lose lots of useful stuff |
16:47:24 | Araq | instead the parsing related #defines should become c2nim's #def |
16:47:45 | Araq | the docs are quite verbose about it btw |
16:48:00 | Araq | if only people would read them ... :P |
16:48:35 | gradha | but c2nim doesn't support includes, so it doesn't look like it aims to fully parse C headers anyway |
16:49:06 | gradha | so I either manually nudge C headers for c2nim, or preprocess them and nudge c2nim's output |
16:49:09 | Araq | you need to tweak the input for c2nim |
16:49:12 | gradha | in either case manual tweaking is required |
16:49:15 | Araq | yep |
16:49:26 | Araq | but the C's preprocessor is unlikely to help |
16:49:42 | Araq | and you lose all the constants |
16:53:49 | * | Araq is in fact very proud of c2nim's #def feature and sad nobody uses it |
16:54:49 | gradha | by verbose you mean "#def is very similar to C's #define, so in general the macro definition can be copied and pasted into a #def directive"? |
16:56:04 | Araq | by verbose I mean "c2nim's documentation is almost 300 lines long" :P |
16:56:28 | gradha | man, it could turn into an ebook or something |
16:56:57 | Araq | hey people already don't read these 300 lines |
16:57:01 | gradha | BTW, what were your concerns about ebooks? still writing the definitive guide for Nimrod? |
16:57:10 | gradha | or will that come after 1.0? |
16:57:44 | Araq | I'm working on it but don't know any release date |
16:58:23 | Araq | I think it'll come after 1.0 and especially once the TR features are in heavy use by some matrix library |
17:00:26 | gradha | do you have something against c2nim following local includes? |
17:00:43 | Araq | there is no need |
17:00:59 | Araq | it doesn't use a symbol table for parsing anyway |
17:01:20 | dom96 | gradha: Could you check whether https://github.com/nimrod-code/Aporia/issues/21 is now fixed for you when you get a chance? |
17:01:22 | Araq | and you can always do: for f in *.h: c2nim f |
17:02:08 | gradha | that doesn't work when one of the headers defines macros, used in the other headers |
17:02:31 | gradha | well, since it's all manual labor nowadays I'll just emulate the include with my text editor |
17:02:41 | Araq | true but you need to change the #define to #def anyway |
17:04:26 | Araq | "Often C code contains special macros that affect the declaration of a function |
17:04:28 | Araq | prototype but confuse c2nim's parser: " (followed by an example) |
17:05:11 | Araq | not exactly verbose, but quite clear, isn't it? |
17:06:28 | gradha | the not convincing line is "in general ... can be copied and pasted", makes me immediately think about the corner cases where it breaks |
17:06:57 | gradha | but it's all right since I can come here and moan about it |
17:07:17 | Araq | of course there are corner cases where it breaks |
17:07:27 | Araq | we're talking about C here |
17:08:13 | Araq | but still ... it works better than any other header file tool I've ever used |
17:08:39 | Araq | it's just that most people have unrealistic expectations so the docs are defensive ;-) |
17:09:04 | gradha | the unrealistic expectations might come from the name of the tool |
17:09:44 | gradha | I would expect less from "twekaedandmangledCnearlyTonim", but that certainly is not DOS friendly |
17:11:22 | Araq | well feel free to improve its docs |
17:15:14 | gradha | I'm still discussing myself whether to go with gcc -E or tweak manual headers, but you might want to keep http://pastebin.com/xBysaDHJ |
17:16:09 | gradha | btw, why do you use a sequence instead of a fixed array if you access by index? isn't that brittle? |
17:21:41 | gradha | dom96: can't test, it hangs with some info bar http://pastebin.com/CSHK11GT |
17:26:08 | gradha | dom96: ok, that was gtk, rebuilding something in the background (fonts?) |
17:26:48 | Araq | gradha: tweaking for a source to source translator is to be expected really |
17:26:51 | gradha | other than that it seems to work, if you are patient enough |
17:26:55 | Araq | otherwise it's called a compiler |
17:27:34 | dom96 | gradha: no idea, that's very weird. How long does it take to startup, is it the same every time? |
17:27:48 | gradha | no, just once, now its ok |
17:28:09 | gradha | Araq: how do you classify pretty printers? cident et all |
17:28:41 | Araq | hm good point, a pretty printer is neither :P |
17:29:04 | Araq | btw pretty printers for C are awkward for the same reasons |
17:30:11 | gradha | every time I've tried to use one I didn't like their pretty print, so ended up reformatting by hand the extraneous code |
17:30:36 | gradha | seems like a waste of time, unless your 8h job is to reformat external code |
17:31:57 | dom96 | gradha: So does suggest work? can I close that issue? |
17:32:05 | gradha | sure |
17:32:28 | dom96 | great |
17:33:26 | gradha | under macosx the popup window gets content too wide so you get a horizontal scroll, but the keywords fit, so I don't know why |
17:34:45 | dom96 | hrm, maybe I can tell GTK to not show the horizontal scroll bar ever. |
17:35:29 | Araq | gradha: so the changes to cpp fixed the issue? |
17:35:49 | gradha | Araq: still working on that |
17:38:56 | NimBot_ | nimrod-code/Aporia cdbb24c Dominik Picheta [+0 ±1 -0]: Changed the suggest scroll bar policy to never show the horizontal... 2 more lines |
17:38:58 | dom96 | gradha: Try it now please. |
17:41:54 | gradha | no bar now |
17:42:58 | dom96 | good :) |
17:44:05 | gradha | on macosx the suggestions are not sorted alphabetically |
17:44:24 | gradha | so suggestions for stuff like "or" are littered through the list, rather than group and differentiated by param type |
17:44:29 | dom96 | They're not sorted alphabetically ever. |
17:45:51 | gradha | I see that using the keys displays a tooltip with param type info |
17:48:07 | dom96 | gradha: yeah, if you click on the items a tooltip should show up as well. |
17:48:40 | gradha | I wonder if you could coalesce same name suggestions into one line, and mark it with a symbol meaning there are different types |
17:49:00 | gradha | then, when you continue typing or select that, the suggestion box changes to show only the keyword and parameters |
17:49:19 | gradha | but now the parameters would be included in the main list so you don't need to manually reach for the tooltip |
17:49:45 | Araq | I like the idea |
17:49:53 | Araq | sounds like much work to implement though |
17:50:04 | gradha | yeah, could be distracting too |
17:51:37 | dom96 | I think getting a tooltip with the functions params when ( is pressed would be enough. |
17:51:47 | gradha | or maybe the first suggestion box would pop up a second level suggestion box with all possible types? |
17:52:35 | gradha | discard that, I can see myself hating that |
17:54:00 | dom96 | Araq: Could you investigate why suggest doesn't work when I type in "ec" and invoke suggest after the c? |
17:55:57 | dom96 | That's a bug right? |
18:10:22 | Araq | dom96: no, I never implemented that I think |
19:08:55 | * | Trixar_za is now known as Trix[a]r_za |
19:15:13 | reactormonk | Araq, so the main file can either be a .nim or .nimrod.cfg ? |
19:16:05 | reactormonk | Araq, and imho if there is a .nimrod.cfg in the current dir, read stuff from that one - but it seems the main.nim isn't in there |
19:19:51 | Araq | reactormonk: no, x.nimrod.cfg is simply a configuration file |
19:20:03 | Araq | it indicates that x.nim is a "project file" |
19:20:17 | reactormonk | oh, same name |
19:20:49 | Araq | nimrod c x.nim # x.nim is called the "project file" in this context |
19:20:59 | Araq | there is nothing special about project files really |
19:21:13 | reactormonk | too bad :-) |
19:29:36 | Araq | reactormonk, gradha et.al. |
19:29:55 | Araq | what's your experience with pushing wikipedia articles? |
19:30:15 | reactormonk | Araq, mine? Never wrote anything on wikipedia. |
19:30:29 | reactormonk | sure there isn't a #wikipedia ? |
19:30:52 | Araq | we dug nimrod's wikipedia article |
19:31:24 | Araq | and want to get it through this time |
19:32:58 | reactormonk | Enough references? |
19:34:24 | Araq | no ...? |
19:34:36 | reactormonk | Hm. |
19:34:44 | Araq | chicken and egg |
19:34:50 | reactormonk | Take a look at other rather small languages. |
19:43:10 | dom96 | It would be nice if someone would write a blog post about Nimrod. |
19:43:21 | dom96 | We need sources! |
19:55:50 | Araq | ping zahary1 |
20:32:57 | * | FreeArtMan joined #nimrod |
21:02:45 | gradha | is there a pragma to tell nimrod to add a switch to the linker flags for an external lib? |
21:03:39 | Araq | {.passL: "xyz".} ? |
21:04:00 | gradha | no idea, can't find it in the manual |
21:05:58 | Araq | hrm seems undocumented |
21:06:12 | Araq | it's in an example in nimrodc.txt though :P |
21:07:24 | gradha | ok, compiles with {.passL:"-L/usr/local/lib".}{.passL: "-lepak".} |
21:07:32 | gradha | I guess the path should be external? |
21:08:49 | Araq | whatever, just wrap it in a 'when defined(macosx)' |
21:10:08 | * | XAMPP quit (Read error: Connection reset by peer) |
21:11:51 | * | XAMPP joined #nimrod |
21:17:04 | fowl | Araq: i use #def all the time |
21:17:37 | fowl | Araq: i even hada change to allow calling c2nim -d:somedef to do #def somedef but i forgot to commit it |
21:18:35 | Araq | fowl: nice :-) |
21:18:54 | Araq | see, gradha? the docs can't be that bad :P |
21:21:21 | gradha | is there any harm if I replace all cints with int? |
21:21:49 | gradha | ah, explicit 32bits |
21:35:10 | fowl | gahh http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const |
21:45:10 | gradha | I have a C function accepting void*, which c2nim translated to the pointer type |
21:45:23 | gradha | now I created a buf: array[0..254, char], how do I pass it to it? |
21:45:49 | Araq | s/pointer/cstring |
21:46:09 | Araq | you can pass a char array to a cstring without any explict conversion |
21:47:20 | gradha | does the cstring cast work with other types as well? |
21:47:29 | gradha | these are serialization functions, hence the void* |
21:47:47 | Araq | well pointer is better than |
21:47:54 | gradha | used to save structures to disk with these |
21:47:57 | Araq | provide an overload that takes a cstring |
21:48:11 | Araq | for convenience |
21:51:56 | Araq | gradha: do you happen to wrap libtpl? |
21:56:42 | gradha | no, I'm wrapping old C code I extracted from the Allegro C library |
21:58:08 | gradha | basically a subset of http://alleg.sourceforge.net/stabledocs/en/alleg030.html I collected for iOS programming |
21:58:42 | gradha | and it works |
21:59:19 | fowl | i tried to wrap allegro once |
21:59:29 | gradha | it has been even less painful than the python wrapper |
21:59:48 | fowl | i gave up on it because it was a confusing mass of macros |
22:00:23 | gradha | yes, I've used cpp to get rid of them, then recovered the constants for c2nim |
22:01:52 | gradha | the python wrapper I wrote was 100% manual, so the macros were the least of my problems |
22:02:36 | gradha | I gave up when I realized python still didn't have easy memory access (later they created the buffer protocol) |
22:07:06 | Araq | python is pretty sweet for "glue code" |
22:07:30 | Araq | it has a completely different data model from the language you glue to |
22:09:00 | Araq | in order words ... I never got why it's called "glue" |
22:09:07 | gradha | every time somebody says python is ideal for "glue" I want to stab Guido to death (or all of his acolytes) |
22:11:36 | Araq | so gradha did the diff fix the c2nim bug? |
22:13:14 | gradha | after applying it c2nim stopped crashing and continued complaining on other stuff, so I guess it worked |
22:13:36 | Araq | well does it translate the #define properly? |
22:13:57 | Araq | that's what you should test |
22:14:20 | gradha | it was code I wasn't using it so I removed it |
22:14:45 | gradha | one was a reimplementation of the C MIN macro |
22:14:54 | gradha | another was a cross platform compatibility macro |
22:15:08 | gradha | none necessary, deleted won't give more problems |
22:15:20 | Araq | fine I'll test it then |
22:17:07 | gradha | amazing, the nimrod version of the C test case is 7 lines shorter |
22:17:18 | gradha | yay for lack of curly braces everywhere |
22:17:50 | * | FreeArtMan quit (Remote host closed the connection) |
22:18:14 | Araq | getting rid of the braces is the hole point of nimrod's existance |
22:18:29 | Araq | *whole |
22:19:05 | Araq | who needs a proper type system, exceptions or a GC ... ;-) |
22:19:48 | gradha | you should get rid of types on 1.0 release with a big "surprise!" message |
22:21:08 | gradha | that will create enough hate blog entries to get references for wikipedia |
22:23:18 | Araq | meh I'll get rid of the C backend instead and interpret nimrod |
22:23:38 | Araq | or target the JVM |
22:24:15 | gradha | challenge the performance of C through the javascript backend |
22:24:51 | Araq | btw somebody should fix exception handling for the JS backend |
22:25:05 | Araq | that's a pretty bad bug |
22:25:15 | Araq | some would call it "showstopper" ... |
22:25:25 | gradha | JS is a showstopper for some too |
22:25:42 | Araq | there is no alternative on the browser |
22:26:41 | gradha | isn't coffeescript already the js alternative? |
22:26:45 | Araq | and nimrod should outperform emscripten by some margin |
22:26:55 | Araq | coffeescript is a nicer syntax for JS |
22:27:01 | Araq | it doesn't add static typing |
22:29:05 | gradha | do you have any specific porting instructions wrt libtpl? |
22:29:20 | Araq | no. why? |
22:29:31 | gradha | just curious |
22:29:54 | Araq | well its header file is tiny and it looks like a piece of cake to wrap |
23:11:15 | * | gradha quit (Quit: Leaving) |