<<29-12-2012>>

00:21:12*rking quit (Ping timeout: 264 seconds)
00:25:41*rking joined #nimrod
02:11:58*shevy joined #nimrod
02:12:01shevywheeeeeee
02:12:32Araqshevy: bad timing
02:12:40AraqI'm already sleeping
02:12:46shevyhehe
02:12:52shevywheeeeeeee into your bed!
02:12:59shevyI am just going to wheee
02:13:56Araqdrunk hu?
02:14:04shevyalmost :D
02:14:09shevya bit tired...
02:14:19shevyit's the last energy burst before I get really tired
02:14:39Araqlearn nimrod then, the tutorials constantly get improved
02:16:43NimBot_nimrod-code/Aporia 5270969 Dominik Picheta [+1 ±2 -1]: Improved suggest by making it aware of project files.
02:16:52dom96And with that I should sleep
02:17:10shevyAraq eventually I will master it
02:17:14shevyit's more interesting than python
02:17:37shevy(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:14Araqpython docs are more verbose
02:18:30Araqand I guess yeah, they're better for most people
02:18:41Araqbut we'll get there
02:19:07Araqhowever we have type information :P
02:19:16Araqgood night
03:44:43*q66 quit (Quit: Quit)
06:24:36AlexLibmanI wasn't able to compile aporia - "Aporia-master/utils.nim(58, 22) Error: undeclared identifier: 'PInfoBar'"
06:25:07AlexLibmanI just wanted to check it out though. Won't use a GTK-based program.
06:28:11reactormonkAlexLibman, use the git version of nimrod
06:28:24AlexLibmangit is GPL :P
06:30:33AlexLibmanWould 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:52reactormonkAlexLibman, ... wtf. Yes.
06:45:10reactormonkAlexLibman, which source control is BSD?
06:45:33AlexLibmanBSD cvs, fossil, tar...
06:45:45reactormonkAlexLibman, I usually twich when people talk about how they like open source and use a mac, but you're one level higher ^^
06:46:13AlexLibmanI run gnu software sometimes, in my "gnushit" jail.
06:46:52reactormonkAlexLibman, how about using webpages that are not really opensource? ;-)
06:48:51AlexLibmanThey do piss me off sometimes, especially slashdot.
06:49:46AlexLibmanPerhaps 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:54AlexLibmanI'll dump the SQL to bittorrent, yaay!
06:49:59reactormonk^^
06:50:44AlexLibmanSlashdot is a pain in the ass to scrape. They use many closed-source tricks to prevent it.
06:51:34reactormonkoh, the comments are ajax
06:52:14reactormonkor not, if fetched by curl
06:54:12AlexLibmanTry it. You'll spend all night trying to figure out which headers you are missing.
06:54:20reactormonkhuh?
06:54:36AlexLibmanSeriously. Slashdot scraping is what they make you do in the innermost circle of hell.
06:55:33AlexLibmanNo wonder that, after all these years, there's no scrape of it anywhere.
06:55:52AlexLibmanAnd google/archive.org only get the most high-ranking comments.
06:58:39AlexLibmanThey 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:31AlexLibmanAnd there are TONS of data to scrape...
08:55:07AlexLibmanI 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:43AlexLibmanWe 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:25AlexLibmanUnfortunately reforming client-side Web tech is like reforming the English language - you won't be understood.
08:58:17Araqwe don't need a choice of scripting languages, we need some low level asm-like language on the browser
08:59:04AlexLibmanI mean a choice of languages that can be compiled into this binary sandboxed in-browser executable.
08:59:24Araqalright then
08:59:53AlexLibmanGoogle 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:11AlexLibmanThis 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:03Araqmeh and then it performs some update you don't want
09:03:04AlexLibmanFile filesystem paradigm becomes Web cache paradigm. Everything is a URL.
09:04:09AlexLibmanFree 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:55Araqthat just Linux's package manager in worse, sorry
09:05:06Araqover-engineered and breaks quite often
09:05:56AlexLibmanWe'll see. New paradigms can be difficult to get used to, even if they're better.
09:07:22AlexLibmanWhy remember /usr/local/share/doc/appX when you already remember https://appX.org/doc ...
09:08:02AlexLibmanWhat 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:47AlexLibmanPrice per terabyte keeps falling, but when a Web site hiccups you are helpless. http://xkcd.com/903/
09:10:05AlexLibmanThat's what my "http cache proxy" project idea is all about. (Working title: Prepper Proxy.)
09:10:52AlexLibmanAlso 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:10AlexLibmanYou can also have one proxy server for a whole network.
09:11:59AlexLibmanJust some project ideas I may be working on in the future. Hopefully in Nimrod (if it becomes copyfree).
09:14:31reactormonkAlexLibman, do you count lines from 0 or 1?
09:14:35reactormonkerr @ Araq
09:14:43AlexLibmanRelated Slashdot rant: http://yro.slashdot.org/comments.pl?sid=3288829&amp;cid=42165531
09:15:08AlexLibmanreactormonk: I count lines from the start of the function, not file. :P
09:16:25reactormonkAlexLibman, ... that's for nimrod idetools
09:16:31reactormonkAraq, 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:37AlexLibmanWith 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:39reactormonkdoes that work for column?
09:17:22reactormonkAlexLibman, friend of mine once said that censorship is simply a network failure and the internet routes around it
09:17:27AlexLibman"Where we are going we don't need roads!"
09:18:20AlexLibmanYes, 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:13AlexLibman(Not to be confused with voluntary governance and governance based on things like Parents' Rights and Contract Rights, which are essential.)
09:25:59reactormonkAlexLibman, government is there when people run low on energy and don't care anymore. It just tends to get exploited
09:26:24reactormonkAnd hierarchies are built into human nature :-/
09:26:30AlexLibmanHope 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:04Araqreactormonk: lines start at 1, columns at 1 or 0 I can't remember
09:27:24reactormonkAlexLibman, already did that
09:27:44reactormonkAraq, could you look it up? Sounds like a nasty bug if I've got the wrong value
09:28:00reactormonkor wait, just invoke with 0 and see if it works :>
09:28:07AlexLibmanI 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:17Araqreactormonk: at 0 I think
09:29:21reactormonkAraq, nice
09:29:41reactormonkAraq, shouldn't nimrod idetools --track:foo.nim,1,0 --suggest spit a shitload from stuff on the stdlib?
09:29:44AlexLibmanOne 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:34AraqAlexLibman: my hd is so much more reliable than the net it's not even funny
09:30:45AlexLibmanThat's the idea.
09:30:53Araqso I dislike these "everything should become the web" idea
09:31:00Araq*ideas
09:31:09reactormonkAraq, everything on the cloud?
09:31:22AlexLibmanAs RAM / SSD / disks become bigger and cheaper, my ideas about local caching will make more and more sense.
09:31:48reactormonkAlexLibman, and where are you going to store all the instagram pics? ^^
09:32:24AlexLibmanI 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:41reactormonkAlexLibman, all hail to the DOM
09:33:26AlexLibmanSome 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:37AlexLibmanTake 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:03AlexLibmans/reemptive/preemptive/
09:36:34Araqthe web standards are so fucked up and yet you want to build everything on that architecture? o.O
09:37:03Araqwe need a new web before that, please ;-)
09:37:37AlexLibmanThe 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:00AlexLibmanThe web standards are just the UI. We all have to live with those. Like the English language.
09:40:30AlexLibmanSome 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:59AlexLibmanThey'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:06AlexLibmanThen a new browser project doesn't have to worry about cache, add-ons, settings UI, and many other things.
09:43:40reactormonkAraq, idea about the idetools?
09:44:15Araqreactormonk: myObj.| # | is the cursor
09:44:23reactormonkooh
09:44:34reactormonkwell, what about echo?
09:44:41Araqthat's what it's about and it kind of works :P
09:47:55reactormonkAraq, I use http://sprunge.us/aMdQ and nimrod idetools --track:foo.nim,2,28 --suggest but no output
09:49:41Araqreactormonk: works for me in aporia
09:49:51reactormonkhum
09:50:14Araqyou need to do:
09:50:26Araqnimrod idetools --track:foo.nim,2,28 --suggest foo.nim
09:50:41Araqi.e. give it a main.nim file too
09:50:52Araq(could be different from the track file)
09:51:33reactormonkoh, cool
09:52:48reactormonkbut... how do I get the main file from a project?
09:53:22AraqgetDir(currentfile)/*.nimrod.cfg -- * is the name of the main file
09:53:49Araqcan be ambiguous :P
09:54:02Araqor may not exist, then the current file is the main file
09:54:22Araqin fact, using the current file as the main file is often good enough
09:55:39reactormonkI currently determine the project dir with git
09:55:42reactormonkshould do for now
09:56:15Araqyeah I don't get why invoke git here
09:56:30reactormonkBecause I need to know what the project root is
09:57:18Araqdo you? why?
09:57:32reactormonkSo I know which files to copy to my tmpdir
09:58:33Araqshouldn't that just be the files you have open and unsaved in your editor?
09:59:47reactormonkwhat if you have another lib file you depend on and not open yet?
10:01:18Araqif it's not opened, it's on the hd
10:01:30Araqand no sync is necessary
10:01:32reactormonkYes, but I don't know it should go to the tempdir
10:04:05Araqwhy should it?
10:04:25Araqtempdir is only necessary for unsaved changes
10:04:49reactormonkand how do I tell idetools where to find the unsaved changes?
10:05:08Araq--path ?
10:05:08reactormonkHmm... --track to the tmpdir?
10:05:38Araq--track to the tmpdir should be the whole point of using a temp dir
10:05:53reactormonkso --path and --track to the tempdir?
10:06:11Araqyeah
10:06:18AraqI have to go, see you later
10:06:24reactormonkgotta sleep :-)
10:07:58*bloouup quit (Ping timeout: 245 seconds)
10:46:53dom96AlexLibman: Did you get Aporia working?
10:47:27AlexLibmanDo, busy with other things.
10:52:15AlexLibmanUninstalled Nimrod v0.9.0. Tried to install Nimrod-master, but build.sh says:
10:52:27AlexLibman"gcc: build/5_1/system.c: No such file or directory"
10:52:35AlexLibman"gcc: No input files specified"
10:52:38dom96You need to unzip build/csources.zip
10:55:21AlexLibmanOh, ok. My bad for skipping readme.txt, but it was different for v0.9.0
10:57:51dom96Yeah, 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:21AlexLibmanWeird, my box just instantly shut off and restarted for no reason. But that was after reinstalling nimrod.
11:05:01dom96Maybe the CPU got too warm?
11:05:45AlexLibmanNever happened before, and I've had it compiling for many hours. Nimrod compile takes just a minute.
11:06:08AlexLibmanMaybe it's power fluxuations... It's a crummy old building.
11:12:24dom96maybe
11:21:40AlexLibmanAporia still doesn't compile, but I gotta run - will provide full pastebin later.
11:21:48dom96alright
11:21:57dom96see you later
12:01:43*q66 joined #nimrod
12:07:02*AlexLibman quit (Remote host closed the connection)
12:46:13dom96Araq: 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:05ZorAraq: poke
12:49:29AraqZor: I'm around
12:50:40Zorwhat kinds of compilation modes does the nimrod compiler support?
12:51:01Zore.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:59AraqZor: for now mostly whole program compilation
12:59:10Araqthe stdlib can be built into a DLL
12:59:21Araq(I use the term DLL for lib*.so too)
12:59:50Araqand we got incremental compilation mostly working
13:01:42Araqyou can compile a project into a DLL or an exe, not sure how good our staticlib support is
13:02:29Araqshouldn't be hard, you have full control, you can tell Nimrod not to generate a main() for instance
13:02:51Araqa Nimrod module is compiled to a single .c file
13:21:32NimBot_nimrod-code/Aporia ffb7e01 Dominik Picheta [+0 ±1 -0]: Suggest works on unsaved files now.
13:21:32NimBot_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:32NimBot_nimrod-code/Aporia a9689e5 Dominik Picheta [+0 ±2 -0]: Added UTF-16LE/BE support.
13:47:08*gradha joined #nimrod
13:48:16gradhaAraq: how should I deal with c2nim bugs? http://pastebin.com/hY4grFFk create a ticket?
13:49:11gradhahere's the file if it helps http://pastebin.com/Nny1cbEU
13:49:37gradhait comes from a library using heavy C macros to support crossplatform portability, so c2nim just doesn't work on the real source
13:50:08gradhaluckily 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:34gradhameh, guests, see you later
13:55:36*gradha quit (Quit: Leaving)
15:53:09*gradha joined #nimrod
15:56:40Araqgradha: the c2nim error looks like you have some old version of c2nim?
15:59:23gradhadid compile it today for the first time, let me check again
16:01:00gradharecompiled now compiler/c2nim, still same output
16:01:57Araqhrm, do you feel like fixing it?
16:02:39gradhanot that I understand what is broken
16:04:09Araqwell I can tell you and it may be faster as you can test it
16:04:38gradhaI'm starting to litter compiler/renderer.nim:gproc with echos
16:07:05Araqthat's unlikely to help :P
16:07:16gradhabut makes me feel like a real programmer
16:07:35Araqbtw there is a 'debug' proc for outputting the internal data structures
16:07:49gradhaisn't repr for that?
16:08:20Araqdebug predates repr and produces less verbose output
16:08:37gradhado I have to recompile everything for c2nim?
16:09:14Araqc2nim uses parts of the compiler
16:09:30gradhaok, the echos are reached
16:09:57AraqI don't understand your question, you tell nimrod to compile c2nim and it does everything for you
16:10:03Araqno need to bootstrap
16:10:35gradhano problem, I was wondering if I needed to recompile nimrod for c2nim to work
16:14:44Araqbrb
16:15:11*Trix[a]r_za is now known as Trixar_za
16:21:10gradhaso it was choking on "#define AL_MIN(a,b) (((a)<(b))?(a):(b))", removed it and solved
16:34:44Araqyeah
16:35:33gradhadidn'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:42Araqthe AST format changed ...
16:35:50Araqfix is "easy"
16:35:55Araqopen c2nim/cpp.nim
16:37:24gradhaeatNewLine, I like that
16:37:40Araqinsert before line 45:
16:37:49AraqaddSon(result, ast.emptyNode)
16:38:33Araqsame after line 63 "no pragmas"
16:38:39Araqand then it should work again
16:40:39gradhacrap, cpp is buggy too!
16:41:00gradhait blindly inserts a define somewhere else, including its trailing comment
16:41:21gradhaso it fucks up an array size blah[SIZE] -> blah[4096 //comment]
16:42:40Araqlol
16:43:45Araqso ... now that you know how c2nim works, please improve it to a c++2nim ;-)
16:44:11gradhathat implies I use C++, maybe objc
16:46:28gradhahmm... gcc -E works much better, but prunes unused stuff, so it's not good for library header files
16:46:54Araqdon't run a C preprocessor before c2nim
16:47:06Araqyou'll lose lots of useful stuff
16:47:24Araqinstead the parsing related #defines should become c2nim's #def
16:47:45Araqthe docs are quite verbose about it btw
16:48:00Araqif only people would read them ... :P
16:48:35gradhabut c2nim doesn't support includes, so it doesn't look like it aims to fully parse C headers anyway
16:49:06gradhaso I either manually nudge C headers for c2nim, or preprocess them and nudge c2nim's output
16:49:09Araqyou need to tweak the input for c2nim
16:49:12gradhain either case manual tweaking is required
16:49:15Araqyep
16:49:26Araqbut the C's preprocessor is unlikely to help
16:49:42Araqand 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:49gradhaby 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:04Araqby verbose I mean "c2nim's documentation is almost 300 lines long" :P
16:56:28gradhaman, it could turn into an ebook or something
16:56:57Araqhey people already don't read these 300 lines
16:57:01gradhaBTW, what were your concerns about ebooks? still writing the definitive guide for Nimrod?
16:57:10gradhaor will that come after 1.0?
16:57:44AraqI'm working on it but don't know any release date
16:58:23AraqI think it'll come after 1.0 and especially once the TR features are in heavy use by some matrix library
17:00:26gradhado you have something against c2nim following local includes?
17:00:43Araqthere is no need
17:00:59Araqit doesn't use a symbol table for parsing anyway
17:01:20dom96gradha: Could you check whether https://github.com/nimrod-code/Aporia/issues/21 is now fixed for you when you get a chance?
17:01:22Araqand you can always do: for f in *.h: c2nim f
17:02:08gradhathat doesn't work when one of the headers defines macros, used in the other headers
17:02:31gradhawell, since it's all manual labor nowadays I'll just emulate the include with my text editor
17:02:41Araqtrue but you need to change the #define to #def anyway
17:04:26Araq"Often C code contains special macros that affect the declaration of a function
17:04:28Araqprototype but confuse c2nim's parser: " (followed by an example)
17:05:11Araqnot exactly verbose, but quite clear, isn't it?
17:06:28gradhathe not convincing line is "in general ... can be copied and pasted", makes me immediately think about the corner cases where it breaks
17:06:57gradhabut it's all right since I can come here and moan about it
17:07:17Araqof course there are corner cases where it breaks
17:07:27Araqwe're talking about C here
17:08:13Araqbut still ... it works better than any other header file tool I've ever used
17:08:39Araqit's just that most people have unrealistic expectations so the docs are defensive ;-)
17:09:04gradhathe unrealistic expectations might come from the name of the tool
17:09:44gradhaI would expect less from "twekaedandmangledCnearlyTonim", but that certainly is not DOS friendly
17:11:22Araqwell feel free to improve its docs
17:15:14gradhaI'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:09gradhabtw, why do you use a sequence instead of a fixed array if you access by index? isn't that brittle?
17:21:41gradhadom96: can't test, it hangs with some info bar http://pastebin.com/CSHK11GT
17:26:08gradhadom96: ok, that was gtk, rebuilding something in the background (fonts?)
17:26:48Araqgradha: tweaking for a source to source translator is to be expected really
17:26:51gradhaother than that it seems to work, if you are patient enough
17:26:55Araqotherwise it's called a compiler
17:27:34dom96gradha: no idea, that's very weird. How long does it take to startup, is it the same every time?
17:27:48gradhano, just once, now its ok
17:28:09gradhaAraq: how do you classify pretty printers? cident et all
17:28:41Araqhm good point, a pretty printer is neither :P
17:29:04Araqbtw pretty printers for C are awkward for the same reasons
17:30:11gradhaevery 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:36gradhaseems like a waste of time, unless your 8h job is to reformat external code
17:31:57dom96gradha: So does suggest work? can I close that issue?
17:32:05gradhasure
17:32:28dom96great
17:33:26gradhaunder 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:45dom96hrm, maybe I can tell GTK to not show the horizontal scroll bar ever.
17:35:29Araqgradha: so the changes to cpp fixed the issue?
17:35:49gradhaAraq: still working on that
17:38:56NimBot_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:58dom96gradha: Try it now please.
17:41:54gradhano bar now
17:42:58dom96good :)
17:44:05gradhaon macosx the suggestions are not sorted alphabetically
17:44:24gradhaso suggestions for stuff like "or" are littered through the list, rather than group and differentiated by param type
17:44:29dom96They're not sorted alphabetically ever.
17:45:51gradhaI see that using the keys displays a tooltip with param type info
17:48:07dom96gradha: yeah, if you click on the items a tooltip should show up as well.
17:48:40gradhaI wonder if you could coalesce same name suggestions into one line, and mark it with a symbol meaning there are different types
17:49:00gradhathen, when you continue typing or select that, the suggestion box changes to show only the keyword and parameters
17:49:19gradhabut now the parameters would be included in the main list so you don't need to manually reach for the tooltip
17:49:45AraqI like the idea
17:49:53Araqsounds like much work to implement though
17:50:04gradhayeah, could be distracting too
17:51:37dom96 I think getting a tooltip with the functions params when ( is pressed would be enough.
17:51:47gradhaor maybe the first suggestion box would pop up a second level suggestion box with all possible types?
17:52:35gradhadiscard that, I can see myself hating that
17:54:00dom96Araq: Could you investigate why suggest doesn't work when I type in "ec" and invoke suggest after the c?
17:55:57dom96That's a bug right?
18:10:22Araqdom96: no, I never implemented that I think
19:08:55*Trixar_za is now known as Trix[a]r_za
19:15:13reactormonkAraq, so the main file can either be a .nim or .nimrod.cfg ?
19:16:05reactormonkAraq, 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:51Araqreactormonk: no, x.nimrod.cfg is simply a configuration file
19:20:03Araqit indicates that x.nim is a "project file"
19:20:17reactormonkoh, same name
19:20:49Araqnimrod c x.nim # x.nim is called the "project file" in this context
19:20:59Araqthere is nothing special about project files really
19:21:13reactormonktoo bad :-)
19:29:36Araqreactormonk, gradha et.al.
19:29:55Araqwhat's your experience with pushing wikipedia articles?
19:30:15reactormonkAraq, mine? Never wrote anything on wikipedia.
19:30:29reactormonksure there isn't a #wikipedia ?
19:30:52Araqwe dug nimrod's wikipedia article
19:31:24Araqand want to get it through this time
19:32:58reactormonkEnough references?
19:34:24Araqno ...?
19:34:36reactormonkHm.
19:34:44Araqchicken and egg
19:34:50reactormonkTake a look at other rather small languages.
19:43:10dom96It would be nice if someone would write a blog post about Nimrod.
19:43:21dom96We need sources!
19:55:50Araqping zahary1
20:32:57*FreeArtMan joined #nimrod
21:02:45gradhais there a pragma to tell nimrod to add a switch to the linker flags for an external lib?
21:03:39Araq{.passL: "xyz".} ?
21:04:00gradhano idea, can't find it in the manual
21:05:58Araqhrm seems undocumented
21:06:12Araqit's in an example in nimrodc.txt though :P
21:07:24gradhaok, compiles with {.passL:"-L/usr/local/lib".}{.passL: "-lepak".}
21:07:32gradhaI guess the path should be external?
21:08:49Araqwhatever, 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:04fowlAraq: i use #def all the time
21:17:37fowlAraq: i even hada change to allow calling c2nim -d:somedef to do #def somedef but i forgot to commit it
21:18:35Araqfowl: nice :-)
21:18:54Araqsee, gradha? the docs can't be that bad :P
21:21:21gradhais there any harm if I replace all cints with int?
21:21:49gradhaah, explicit 32bits
21:35:10fowlgahh http://stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const
21:45:10gradhaI have a C function accepting void*, which c2nim translated to the pointer type
21:45:23gradhanow I created a buf: array[0..254, char], how do I pass it to it?
21:45:49Araqs/pointer/cstring
21:46:09Araqyou can pass a char array to a cstring without any explict conversion
21:47:20gradhadoes the cstring cast work with other types as well?
21:47:29gradhathese are serialization functions, hence the void*
21:47:47Araqwell pointer is better than
21:47:54gradhaused to save structures to disk with these
21:47:57Araqprovide an overload that takes a cstring
21:48:11Araqfor convenience
21:51:56Araqgradha: do you happen to wrap libtpl?
21:56:42gradhano, I'm wrapping old C code I extracted from the Allegro C library
21:58:08gradhabasically a subset of http://alleg.sourceforge.net/stabledocs/en/alleg030.html I collected for iOS programming
21:58:42gradhaand it works
21:59:19fowli tried to wrap allegro once
21:59:29gradhait has been even less painful than the python wrapper
21:59:48fowli gave up on it because it was a confusing mass of macros
22:00:23gradhayes, I've used cpp to get rid of them, then recovered the constants for c2nim
22:01:52gradhathe python wrapper I wrote was 100% manual, so the macros were the least of my problems
22:02:36gradhaI gave up when I realized python still didn't have easy memory access (later they created the buffer protocol)
22:07:06Araqpython is pretty sweet for "glue code"
22:07:30Araqit has a completely different data model from the language you glue to
22:09:00Araqin order words ... I never got why it's called "glue"
22:09:07gradhaevery time somebody says python is ideal for "glue" I want to stab Guido to death (or all of his acolytes)
22:11:36Araqso gradha did the diff fix the c2nim bug?
22:13:14gradhaafter applying it c2nim stopped crashing and continued complaining on other stuff, so I guess it worked
22:13:36Araqwell does it translate the #define properly?
22:13:57Araqthat's what you should test
22:14:20gradhait was code I wasn't using it so I removed it
22:14:45gradhaone was a reimplementation of the C MIN macro
22:14:54gradhaanother was a cross platform compatibility macro
22:15:08gradhanone necessary, deleted won't give more problems
22:15:20Araqfine I'll test it then
22:17:07gradhaamazing, the nimrod version of the C test case is 7 lines shorter
22:17:18gradhayay for lack of curly braces everywhere
22:17:50*FreeArtMan quit (Remote host closed the connection)
22:18:14Araqgetting rid of the braces is the hole point of nimrod's existance
22:18:29Araq*whole
22:19:05Araqwho needs a proper type system, exceptions or a GC ... ;-)
22:19:48gradhayou should get rid of types on 1.0 release with a big "surprise!" message
22:21:08gradhathat will create enough hate blog entries to get references for wikipedia
22:23:18Araqmeh I'll get rid of the C backend instead and interpret nimrod
22:23:38Araqor target the JVM
22:24:15gradhachallenge the performance of C through the javascript backend
22:24:51Araqbtw somebody should fix exception handling for the JS backend
22:25:05Araqthat's a pretty bad bug
22:25:15Araqsome would call it "showstopper" ...
22:25:25gradhaJS is a showstopper for some too
22:25:42Araqthere is no alternative on the browser
22:26:41gradhaisn't coffeescript already the js alternative?
22:26:45Araqand nimrod should outperform emscripten by some margin
22:26:55Araqcoffeescript is a nicer syntax for JS
22:27:01Araqit doesn't add static typing
22:29:05gradhado you have any specific porting instructions wrt libtpl?
22:29:20Araqno. why?
22:29:31gradhajust curious
22:29:54Araqwell its header file is tiny and it looks like a piece of cake to wrap
23:11:15*gradha quit (Quit: Leaving)