| 00:12:41 | * | q66 quit (Remote host closed the connection) |
| 00:41:22 | NimBot | Araq/Nimrod 98d6027 Araq [+0 ±2 -0]: fixes #257 |
| 02:27:58 | * | Trixar_za is now known as Trix[a]r_za |
| 02:59:23 | * | fowl joined #nimrod |
| 04:31:51 | * | Mathnerd314 joined #nimrod |
| 04:55:52 | * | ccssnet quit (Quit: http://atccss.net) |
| 04:57:39 | * | ccssnet joined #nimrod |
| 05:39:37 | * | gour joined #nimrod |
| 06:10:28 | Araq | hi Mathnerd314; action starts later here |
| 06:10:59 | Araq | fowl: can you please report that crash you encountered? |
| 06:11:51 | Araq | see you later |
| 06:21:33 | fowl | which |
| 08:15:53 | * | Araq_ joined #nimrod |
| 08:16:20 | Araq_ | fowl: a couple of days ago you came up with some pastebin |
| 08:17:00 | Araq_ | (I'm too lazy to look it up again ... :P so please report the bug properly) |
| 08:17:29 | fowl | ok |
| 08:17:33 | fowl | ill look through the logs |
| 08:17:47 | Araq_ | thanks |
| 09:44:51 | * | Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 19.0.2/20130307023931]) |
| 12:00:55 | * | xcombelle joined #nimrod |
| 12:06:32 | * | Araq_ joined #nimrod |
| 12:34:35 | dom96 | this would be cool in Nimrod: http://tyoverby.com/CanvaS/ |
| 12:36:45 | * | Araq_ quit (Read error: Connection timed out) |
| 12:37:46 | * | Araq_ joined #nimrod |
| 13:21:50 | gour | just read post about new OpenShot video editor...this sounds intriguing: "Due to cross-platform compatibility issues, our timeline will need to be re-built, using a new, and much improved canvas. Utilizing HTML5, JQuery, CSS, and WebKit, the new timeline out-performs previous versions of OpenShot by many magnitudes, and is much easier to "skin" and "theme", due to the power of HTML and CSS." what do you |
| 13:21:52 | gour | think? |
| 13:22:12 | gour | here is the link: http://www.kickstarter.com/projects/421164014/openshot-video-editor-for-windows-mac-and-linux |
| 13:31:56 | Araq_ | gour: sounds like a bad idea ;-) |
| 13:32:05 | Araq_ | webapps suck |
| 13:34:07 | gour | Araq_: why JS back-end then? |
| 14:35:45 | * | Mathnerd314 quit (Read error: Connection reset by peer) |
| 14:38:25 | * | Mathnerd314 joined #nimrod |
| 14:53:18 | Araq_ | gour: so because I dislike web apps you shouldn't be able to use Nimrod for web apps? |
| 14:55:23 | * | Mathnerd314 finally gets around to figuring out what Nimrod is |
| 14:55:24 | gour | Araq_: not at all, but wonder why Nimrod has JS back-end when main designer does not like it |
| 14:56:46 | Araq_ | because there is no alternative |
| 14:59:12 | Araq_ | see you later |
| 14:59:14 | * | Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 19.0.2/20130307023931]) |
| 15:00:43 | Mathnerd314 | hm, case expressions... this looks OK. |
| 15:01:42 | Mathnerd314 | "Postfix operators are not possible"... ok? |
| 15:04:35 | * | q66 joined #nimrod |
| 15:04:46 | Mathnerd314 | but where are the lambdas? |
| 15:07:02 | dom96 | http://build.nimrod-code.org/docs/manual.html#closures |
| 15:09:39 | Mathnerd314 | but can you pass them around? |
| 15:10:17 | dom96 | yes |
| 15:11:07 | Mathnerd314 | OIC |
| 15:11:46 | Mathnerd314 | but multi-methods are not passed around |
| 15:57:39 | * | silven_ joined #nimrod |
| 15:59:29 | * | silven quit (Ping timeout: 248 seconds) |
| 16:15:58 | fowl | ooo neat i didnt see the do notation |
| 16:38:13 | fowl | ermagehrd tuple unpacking |
| 16:38:41 | fowl | how did these new features sneak past me |
| 16:52:28 | reactormonk | Mathnerd314, ohh, welcome |
| 17:15:43 | * | xcombelle quit (Remote host closed the connection) |
| 17:23:31 | * | gour quit (Read error: Connection reset by peer) |
| 17:23:37 | * | gour joined #nimrod |
| 17:47:27 | Araq | fowl: the 'do' notation is horribly broken right now, unfortunately |
| 17:47:37 | Araq | and tuple unpacking is as it always was |
| 17:50:39 | * | Mathnerd314 quit (Read error: Connection reset by peer) |
| 17:51:36 | * | Mathnerd314 joined #nimrod |
| 18:22:44 | reactormonk | Araq, how does nimrod usually write to stdout? |
| 18:24:02 | Araq | reactormonk: yeah unless you pass --stdout or something |
| 18:24:46 | reactormonk | Araq, *how* - which function |
| 18:26:02 | Araq | reactormonk: stdout.write ... or 'echo' |
| 18:26:36 | reactormonk | Araq, and the generated C code? |
| 18:26:41 | reactormonk | msgs.gErrorMax = high(int) # do not stop after first error |
| 18:26:48 | reactormonk | ^ don't like that one |
| 18:30:22 | Araq | whats wrong with it? |
| 18:31:32 | reactormonk | high(int) is damn high, but it's going to fail at some point |
| 18:33:35 | Araq | ridiculous |
| 18:33:55 | Araq | you'd need to pass more than 2 billion of lines code to the compiler |
| 18:34:08 | Araq | it will break far sooner due to OOM |
| 18:35:06 | reactormonk | Araq, -1 for no checking? |
| 18:39:07 | reactormonk | Araq, I try to find the point where it writes to stdout in https://github.com/Araq/Nimrod/issues/369, but breaking both printf (echo) and fputs (write) doesn't break |
| 18:45:56 | * | exhu joined #nimrod |
| 18:46:37 | Araq | reactormonk: the compiler translates an expression yielding a value into 'echo expr' in the repl mode |
| 18:46:49 | Araq | the code for that is in semstmts iirc |
| 18:47:17 | reactormonk | there's no echo in that file :-) |
| 18:47:53 | reactormonk | can I display the nimrod trace in gdb with bt? |
| 18:48:58 | Araq | if you bootstrapped with --debuginfo, yes |
| 18:53:22 | reactormonk | Araq, compiler/nimcache/llstream.c:617 <- oh well |
| 18:53:40 | Araq | reactormonk: --lineDir:on |
| 18:57:42 | reactormonk | Araq, can't you just throw that in to -d:debug ? |
| 19:01:51 | Araq | reactormonk: I thought about --debugger:gdb|endb instead of --debugger:on|off ;-) |
| 19:02:28 | * | ack006 joined #nimrod |
| 19:03:05 | * | exhu quit (Quit: Ex-Chat) |
| 19:03:56 | NimBot | Araq/Nimrod 920ef11 Araq [+5 ±2 -0]: tester supports large tests |
| 19:13:02 | Araq | ack006: the 'repr' implementation is in lib/system/repr.nim; for a start you could make 'repr' produce nice output |
| 19:13:15 | ack006 | thanks! :-) |
| 19:13:45 | ack006 | i'm more worried about generating PNode's though that's deep stuff |
| 19:13:52 | Araq | we need some 'reprEcho' in system.nim and the compiler should use that in the RPL |
| 19:14:01 | Araq | well that's how to do it |
| 19:14:09 | Araq | I'm not so sure it's a good idea |
| 19:14:15 | ack006 | why? |
| 19:14:44 | ack006 | because it hides the need for users to make a proper `$` overload? |
| 19:15:20 | Araq | yeah exactly |
| 19:15:21 | ack006 | that's a valid argument, but it would scare away newbies. |
| 19:15:45 | Araq | I'm the only one left who doesn't like 'repr' so go ahead |
| 19:15:52 | ack006 | or we could mention 'repr' more prominently in the docs |
| 19:16:04 | ack006 | well, you hid it in the tutorial, which is a smart move :-) |
| 19:16:05 | fowl | ack006: i had typed out a response to the issue but forgot to submit it |
| 19:16:09 | * | exhu joined #nimrod |
| 19:16:35 | ack006 | fowl: no probs, i'll read it when you do :-) |
| 19:16:40 | fowl | i just did |
| 19:16:48 | Araq | fowl: I'd like to add some of your crazy wrappers and macro stuff to the test suite |
| 19:17:03 | ack006 | fowl: thanks! that's the way :-) |
| 19:17:03 | exhu | hi, Araq |
| 19:17:10 | Araq | fowl: fine with you? |
| 19:17:16 | fowl | Araq: sure |
| 19:17:18 | Araq | (the licence doesn't change for that) |
| 19:17:57 | exhu | Araq, is it possible to convert undefined identifier into a string when passed to an immediate template? |
| 19:18:22 | Araq | exhu: yes and it's dead simple |
| 19:19:28 | exhu | template def(n: expr, t: typedesc) {.immediate.} = echo ($n & $t) |
| 19:19:40 | exhu | Araq, this is to explain the idea of what i need |
| 19:20:32 | fowl | ugh |
| 19:20:36 | fowl | echo *.h > .gitignore |
| 19:20:40 | exhu | Araq, def(unknownId, TSomeType) -- this is the usage |
| 19:20:50 | fowl | cat .gitignore : a bunch of .h files -_- |
| 19:21:19 | Araq | exhu: system.astToStr |
| 19:21:33 | Araq | and the manual even contains an example for what you try to accomplish I think |
| 19:22:15 | exhu | astToStr doesn't work ,the compiler says undeclared identifier |
| 19:22:29 | Araq | huh? |
| 19:22:47 | Araq | let me try that |
| 19:23:25 | exhu | http://pastebin.com/5sZLWG5V |
| 19:24:24 | Araq | how should $t work? |
| 19:25:01 | exhu | Araq, it says 'id' is undeclared -) |
| 19:25:40 | exhu | Araq, astToStr for t doesn't work either |
| 19:28:10 | Araq | exhu: indeed I misremembered; astToStr performs semantic checking for better or worse |
| 19:29:23 | Araq | it's easy to change but I don't know if I had a reason for the current behaviour ... :-/ |
| 19:29:55 | exhu | can you propose a better way for me to declare an ORM ? |
| 19:29:58 | Araq | you can easily use a macro though :P |
| 19:30:45 | exhu | i can't figure out how a macro can be used except for collecting field-sql_column definitions and using emit() |
| 19:32:07 | Araq | I'd use this: |
| 19:32:16 | Araq | myGreatMacro: |
| 19:32:26 | Araq | type TMyTable = object |
| 19:32:41 | Araq | id {.id.}: TEntityId |
| 19:32:57 | Araq | name {.name.}: string |
| 19:33:00 | Araq | etc. |
| 19:33:28 | Araq | you remove the pragmas in the macro and otherwise pass that type back to the compiler (as result value) |
| 19:34:04 | Araq | well the macro generates an nkStmtList with the type section and the procs that your macro created for accessing the database |
| 19:34:41 | Araq | but tbh fowl should know these things much better by now; I never use macros ;-) |
| 19:35:01 | exhu | Araq, but i need to generate a type, an enum and a set of constants. |
| 19:35:01 | Araq | I'm always too busy working on the compiler |
| 19:35:22 | Araq | exhu: well that's what you put into an nkStmtList then |
| 19:36:04 | fowl | exhu: all the information in your col() can fit in a tuple |
| 19:36:51 | exhu | it seems designing such a macro would take more time than to write the working app. |
| 19:37:07 | Araq | you only do it once and it's not that much work |
| 19:37:39 | Araq | and it's exactly the right tool for the job |
| 19:37:46 | Araq | using templates will only get you so far ... |
| 19:38:35 | exhu | i need more macro examples |
| 19:41:04 | fowl | exhu: check out defPacket() https://github.com/fowlmouth/keineSchweine/blob/master/dependencies/genpacket/genpacket_enet.nim |
| 19:42:10 | fowl | exhu: you pass in the type name and a tuple of the data the packet holds and it generates functions for $, constructing, and reading/writing it to a stream |
| 19:42:14 | Araq | fowl: add some helper to create a nnkProcDef please |
| 19:42:31 | Araq | in fact, add that helper to macros.nim |
| 19:42:45 | Araq | it's desperately needed |
| 19:43:06 | fowl | newProc() ? https://github.com/fowlmouth/nimlibs/blob/master/macros/macro_dsl.nim |
| 19:43:24 | exhu | fowl, thanks! |
| 19:43:41 | exhu | fowl, but this macro is mind blowing -) |
| 19:44:14 | fowl | exhu: yea its not really that complicated, nowadays i wouldnt need the $ and constructor creation >_> |
| 19:48:29 | ack006 | fowl: cool! |
| 19:50:26 | Araq | fowl: yeah newProc is it, but your example doesn't use it ;-) |
| 19:54:11 | Araq | fowl: I plan to deprecate the nnk* names, but I'm not sure what the new style should look like |
| 19:54:51 | Araq | the reason for the verbose nnk prefix is archaic |
| 19:57:01 | Araq | but then I can only think of 'nk' instead or use a .pure enum and force everybody to use the verbose TNodeKind.ProcDef or provide some operator to create an ast like: ^kind(child1, child2) |
| 19:59:04 | fowl | i hoped i could make writing macros not require any nnk* |
| 19:59:16 | fowl | at least for the simple cases |
| 19:59:33 | fowl | result = newCall("echo", infix(1.lit, "+", 2.lit)) |
| 20:00:30 | Araq | yeah that's the way to go |
| 20:01:47 | Araq | there is also a new quasi quoting system for that but I forgot its syntax. zahary implemented it ;-) |
| 20:02:49 | Araq | macros.quote is it |
| 20:04:05 | fowl | oh cool |
| 20:06:43 | exhu | thanks for help, guys! maybe tomorrow i'll end with some working macro. good night! |
| 20:07:58 | fowl | exhu: remember dumptree: the expected result and emulate that |
| 20:09:05 | * | exhu quit (Quit: Leaving) |
| 20:12:03 | ack006 | oh how i love my oxford brackets, makes things seem so posh! ;-) |
| 20:12:36 | ack006 | (i'm more a cambridge kind of guy, but have never been there, tho) |
| 20:13:20 | Araq | what are oxford brackets? |
| 20:13:42 | ack006 | look here: http://www.hyperedsoftware.com/blog/entries/first-stab-th.html |
| 20:13:53 | ack006 | search for: [| and |] ;-) |
| 20:15:58 | ack006 | i always get the cringes of those names, like "blackboard bold", "Kleisl arrow" etc. |
| 20:16:47 | ack006 | i enjoy academic challenge, just not always the "academic air" around some terms :-) |
| 20:17:03 | Araq | [| |] are not supported by nimrod's syntax btw |
| 20:17:22 | Araq | as [| is parsed as [ plus some prefix operator | |
| 20:17:23 | ack006 | no problem, no need, find our own |
| 20:17:28 | ack006 | aha |
| 20:17:46 | dom96 | Use [- -] instead :P |
| 20:17:56 | ack006 | ;-) |
| 20:18:14 | Araq | dom96: don't confuse him please, [- is of course not valid either |
| 20:18:48 | dom96 | how come .- is then? |
| 20:19:23 | ack006 | because it's the `-` applied to what's before? |
| 20:20:42 | ack006 | 42.- doesn't work in the repl, (multiline), but 42.`-` => -42 |
| 20:20:43 | fowl | because parsing matching brackets with random other characters between them is hella tedious |
| 20:20:52 | ack006 | yep!! |
| 20:21:25 | ack006 | so happy we have PEGs and semantic expressions yoo |
| 20:21:29 | fowl | ack006: 42.- wouldnt be a valid expr, postfix is only used in nimrod for symbol visibility (name* for exported) |
| 20:21:37 | ack006 | ok |
| 20:21:50 | fowl | if you try .-42 you'll get unknown symbol .- error |
| 20:22:10 | ack006 | btw (ducks!) wouldn't it be nice to rewrite Nimrod's lexer/parser to use peg's? |
| 20:23:00 | ack006 | note: ":-)" implied from now on |
| 20:23:48 | Araq | ack006: read this to see why I don't really like pegs (anymore): http://tratt.net/laurie/tech_articles/articles/parsing_the_solved_problem_that_isnt |
| 20:24:16 | ack006 | thanks, will do |
| 20:27:49 | dom96 | This has some interesting ideas for async IO: https://www.dropbox.com/s/xknbe58zcvjhzhv/PyCon2013.pptx |
| 20:27:55 | Araq | and pegs are much slower than nimrod's lexer/parser anyway |
| 20:28:32 | ack006 | true, but can be a 'reference' implementation, i.e. for bug hunting the grammar |
| 20:29:18 | ack006 | unless you're using eagle mode (pro tip!), wading through a parser worth thousands of lines = not fun :-) |
| 20:29:58 | dom96 | Araq: btw I don't believe you ever gave me that link which describes how you want me to use first class iterators for async io |
| 20:30:48 | ack006 | shameless plug (not my work!) https://github.com/ackalker/eaglemode |
| 20:31:19 | ack006 | zooming UI file manager. i _really_ like it for getting an overview of a large codebase |
| 20:33:09 | ack006 | i've done a little mod that lets you soar around your filesystem like you're in some FPS timerun |
| 20:33:28 | Araq | dom96: I'm looking for it |
| 20:33:37 | Araq | well I'm reading the link you gave |
| 20:33:44 | Araq | but I will afterwards |
| 20:33:57 | dom96 | yeah, let me know what you think about that link. |
| 20:34:49 | ack006 | Araq: interesting article btw. |
| 20:54:03 | Araq | dom96: funny, the link you sent describes exactly the approach that I had in mind |
| 20:54:23 | Araq | and guido is right, it's very much like C#'s async/await |
| 21:05:47 | Araq | ack006: eaglemode looks interesting. any screenshots? |
| 21:06:57 | ack006 | sure, on its official sourceforge page, just a moment |
| 21:07:13 | ack006 | http://eaglemode.sourceforge.net/screenshots.html |
| 21:08:30 | ack006 | but here really counts: using is believing. i think this thing could revolutionize skimming through huge amounts of data |
| 21:08:41 | ack006 | and i don't usually (?) go to superlatives |
| 21:12:51 | ack006 | if you build my scrollock branch, run it, press F12, you can pan around without having to keep the middle mouse button down |
| 21:13:01 | ack006 | and zoom with just Ctrl button down |
| 21:13:19 | ack006 | don't let the dependencies bother you, you don't need them all |
| 21:16:32 | Araq | might try later, sorry |
| 21:16:46 | ack006 | sure :-) |
| 21:44:09 | * | AmatCoder joined #nimrod |
| 22:42:46 | Araq | dom96: I have been thinking about package management again |
| 22:45:24 | dom96 | oh? Go on. |
| 22:45:29 | Araq | and I think it's worth to discuss the following idea: deal with packagement (= package management) like a browser deals with a website |
| 22:46:33 | Araq | like a site contains links a nimrod module contanis imports |
| 22:47:55 | Araq | and the browser downloads and caches all the dependencies to render the site |
| 22:48:02 | Araq | so for us the browser is the compiler |
| 22:48:41 | Araq | the dependencies are specified as "import actions" inside the module itself via a pragma |
| 22:49:48 | Araq | however the import action can simply be "ask babel where to find it" |
| 22:50:22 | Araq | so babel in fact only needs to keep where to find the latest version |
| 22:50:46 | Araq | for a fixed version you may as well hard-code the URL |
| 22:54:12 | * | gour quit (Quit: WeeChat 0.4.0) |
| 22:54:43 | dom96 | Example? |
| 23:10:59 | Araq | import jester["http://jester.org/"] |
| 23:11:12 | Araq | (syntax not cast in stone of course) |
| 23:13:51 | dom96 | I think a comma would be better |
| 23:14:08 | dom96 | but lol no. |
| 23:14:24 | dom96 | That wouldn't work. |
| 23:15:01 | Araq | er ... can we concentrate on the concept please? :P |
| 23:15:08 | Araq | the syntax is irrelevant for now |
| 23:16:11 | dom96 | hrm, so instead of supporting a .nimrod.pkg file you want the URLs to be present in the source code? |
| 23:19:02 | Araq | for now, yes |
| 23:19:25 | Araq | I'm trying hard to come up with the simplest thing that can possibly work |
| 23:31:54 | AmatCoder | dom96: Is Aporia broken? |
| 23:32:05 | dom96 | AmatCoder: Not for me, why? |
| 23:32:58 | AmatCoder | right now if there are not configuration files Aporia crash... |
| 23:33:24 | AmatCoder | ..with "unhandled exception: not input == nil [EAssertionFailed]" |
| 23:33:37 | dom96 | hrm, might be a new bug I introduced. |
| 23:40:13 | NimBot | nimrod-code/Aporia 6571a53 Dominik Picheta [+0 ±1 -0]: Fixes bug with new configuration. |
| 23:40:20 | dom96 | AmatCoder: Try it now. |
| 23:40:40 | AmatCoder | Ok |
| 23:45:41 | dom96 | ok, I need to go to sleep. |
| 23:45:43 | dom96 | Good night |
| 23:46:34 | AmatCoder | dom96: good night |
| 23:46:41 | ack006 | dom96: ZzZzz |
| 23:46:43 | ack006 | :-) |
| 23:47:21 | ack006 | and: "don't listen to the graph paper in your head!" ;-) |
| 23:48:23 | Araq | bye |