<<24-02-2013>>

00:17:39dom96filwit: Any advances with the logo?
00:18:14*nolan2 quit (Ping timeout: 255 seconds)
00:20:06filwithey sorry dom96
00:20:20filwiti'm going to start in second
00:20:25filwiti promise :P
00:20:41dom96filwit: no worries
00:21:59filwitdom96: you want to use the same font as Nimrod logo?
00:22:06filwitso they go together
00:22:30dom96perhaps, sure, we can use that for now and see how it works out.
00:25:48filwitwell i'm just thinking that can be our connection
00:25:56filwit(instead of the "hats" idea)
00:27:01dom96alright
00:27:39filwiti have an idea, making it now
00:27:50filwitwill show you when it's done, maybe 30mins or so
00:27:55dom96but wait, hrm. The icon will be square right?
00:28:03filwitwhy?
00:28:11filwitwhat do you mean?
00:28:28dom96Are you planning to have some sort of abstract image with the text "Aporia" on top?
00:28:38filwitno
00:28:40dom96I'm wondering what you're using a font for.
00:28:59filwitAporia should be included in the design
00:29:03filwitbut there will be a symbol
00:29:09filwitjust like the nimrod logo
00:29:24filwitthe symbol can be extracted from the logo though
00:29:27filwitand used on it's own
00:29:46dom96ahh, ok.
00:30:10filwitthe "logo" usually means "the symbol", it's the icon without text. But "the brand" is the whole thing, words inluded
00:30:14filwitincluded*
00:30:18dom96I'm mostly interested in an icon for the application, haven't really thought about how it should look in the About dialog or even the website yet.
00:30:26filwityou want to make the brand/logo at the same time though
00:30:29filwitto make sure they fit
00:30:33dom96I see.
00:40:45*fowl quit (Read error: Connection reset by peer)
00:44:15reactormonkAraq, except the stacktrace is defined outside system.nim
00:45:25Araqno it's not
00:45:36AraqgetStackTrace is in system.nim
00:47:27reactormonkcan I just set a breakpoint?
00:47:52Araqsure if you know how
00:48:53reactormonkI don't
00:49:07Araqdo you like endb?
00:49:11Araqor gdb?
00:50:12reactormonkendb? never heard of. is it good?
00:50:24reactormonknot in aur
00:50:33Araqlol
00:52:24Araqtry: koch boot --debuginfo --linedir:on
00:52:34Araqand use gdb
00:53:04dom96reactormonk: endb is the embedded nimrod debugger :P
00:54:08Araqwhich is great
00:54:17Araqbut only has 1 user
00:54:23Araqand that's me ;-)
00:54:35dom96What makes you think I don't use it?
00:54:52AraqI never hear you complain about it :P
00:57:01dom96What, complain? Your software is always production-ready, nothing to complain about.
00:57:15sdwis debugging done by looking at the resulting C code?
00:57:34Araqsdw: nimrod can generate #line for you
00:57:45Araqand locals are not mangled
00:59:28sdwso what are the major problems we run into when debugging nimrod code?
01:00:30AraqI have no major problems
01:00:38sdwha :P
01:00:47Araqexcept that I keep editing endb for my needs
01:00:59sdwso all the usual C debugging tools are always available as a kind of safety net?
01:01:24Araqexcept valgrind as I have not gotten around to write a config file for it
01:01:34sdwbut i assume most day-to-day debugging is done with explicit writing of state
01:01:49Araqvalgrind complains about nimrod's GC reading uninit data from the stack
01:01:59sdwive never used valgrind
01:02:11Araqbut since it has to scan the stack conservatively, it's no bug
01:02:26Araqand nothing we can do about taht
01:02:35Araqexcept making valgrind shut up about this
01:02:54sdwbut aporia doesn't have some magic debugger mode that im missing out on, right?
01:03:01*sdw can't run it to see
01:04:08dom96sdw: why can't you run it?
01:04:26dom96But no, it doesn't have a debugger mode yet.
01:04:36Araqsdw: try ENDB
01:04:55sdwPS C:\nimrod\Aporia> .\aporia.exe
01:04:56sdwcould not import: PS C:\nimrod\Aporia>
01:05:01Araqyou can use it to do inject code between every single executed statement
01:05:13sdwi does pause for a bit before it finally crashes
01:05:31dom96sdw: Have you installed all the dependencies?
01:05:41sdwafaik :o)
01:05:55Araqweird thing is the error message itself already
01:06:13Araqwhat is it it couldn't import?
01:06:28sdwquite a mystery
01:06:44sdwlet me make sure all this gtk stuff is in my path
01:06:55Araqand please run it from cmd.exe too
01:07:28dom96Araq: Are there cases where it simply does not know? This seems like a bug... the newline isn't even echoed.
01:07:32sdwcmd.exe is no change
01:10:20sdwmy path looks good
01:10:24AraqI'll reboot soon and try it for myself
01:10:54sdwi've copied pcre.dll from the nimrod compiler directory
01:11:14reactormonkAraq, and how do I use it?
01:11:17Araqmaybe you build a 64bit thing
01:11:26sdwi did
01:11:31sdwis that not a 64bit dll?
01:11:37Araqno ...
01:11:50sdwAlright, I think I've discovered the problem ;)
01:12:09reactormonkAraq, rather, how do I add breakpoints...
01:12:24Araqreactormonk: {.breakpoint.} for ENDB
01:12:36Araqbreak file.nim:244 for gdb
01:14:33reactormonklib/system.nim(886, 62) Error: invalid pragma: breakpoint
01:14:33reactormonkcompiler/nimrod0 cc -d:withUpdate -d:useGnuReadline --debuginfo --linedir:on compiler/nimrod.nim
01:15:14Araqreactormonk: you have to use --debugger:on instead of --debuginfo --linedir:on for endb
01:15:36Araqand then I guess it won't work because 'quit' has no body
01:16:43reactormonkAraq, still invalid pragma
01:16:58Araqyou have to use it as a statement
01:17:24reactormonkoh
01:17:40reactormonkError: system module needs 'endb'
01:18:42Araq:P
01:19:07Araqyou know ... endb ends up calling quit ...
01:19:17Araqso you have a nice problem here
01:19:21reactormonk-.-
01:19:28Araqcome on
01:19:41Araqthere are only 3 places where the compiler uses quit
01:20:01Araqput an "echo 1|2|3" before those and on you go
01:20:45reactormonkcould you give them?
01:22:03Araqcompiler/msgs.nim:526: if isNil(stdoutSocket): quit(0)
01:22:05Araqcompiler/msgs.nim:658: quit(1)
01:22:07Araqcompiler/msgs.nim:664: quit(1)
01:22:08Araqcompiler/msgs.nim:666: quit(1)
01:23:57dom96what if the compiler exits naturally?
01:26:08reactormonkAraq, apparently stdoutSocket is nil
01:28:38Araqreactormonk: do you use "tcp" or "stdin"?
01:28:51reactormonkstdin
01:29:12Araqyeah can't work then
01:29:19Araqlook at the code in service.nim
01:29:45Araqit only news the stdoutSocket for tcp
01:29:53reactormonk:D
01:30:00reactormonk... so what?
01:30:10reactormonkjust set it to something? :-/
01:30:12Araqso it stays nil for stdin
01:30:17reactormonkguessed so
01:30:29reactormonkwhat's the nice idea?
01:30:47AraqI have no idea what zahary wants here
01:31:14reactormonkglobal var isServing and be done with it?
01:31:31Araqhmm
01:31:32dom96check server.type param?
01:32:04Araqglobal var isServing sounds good
01:32:15Araqadd it to options.nim
01:32:20Araqand set it in main.nim
01:32:31Araqand check the condition in msgs.nim
01:32:36Araq*change
01:33:22*nolan2 joined #nimrod
01:35:51reactormonkoke
01:36:44Araqsdw: check out system.dbgLineHook, it's a killer feature IMHO
01:37:05Araqhttp://nimrod-code.org/system.html#539
01:37:48reactormonklike setTraceFunc in ruby :-)
01:38:00nolan2Is it possible to have two different enums with similarly-named values? I.e. CoarseRelativeDirection.ahead, FineRelativeDirection.ahead, ...?
01:38:44Araqnolan2: yes, use {.pure.} enums
01:38:49Araqfor that
01:39:45Araqreactormonk: damn you
01:39:53Araqit was my own invention :P
01:40:11reactormonkAraq, never seen it there
01:40:18reactormonk*used
01:40:19Araqand we should improve it i think
01:40:39Araqit should be passed the function, line and file
01:41:38reactormonkAraq, http://apidock.com/ruby/Kernel/set_trace_func
01:42:37nolan2Cool, thanks. Where does the {.pure.} go? I tried TCoarseRelativeDirection = enum {.pure.} ...
01:42:47nolan2Also put it after the values.
01:43:19AraqTCoarse {.pure.} = enum works
01:43:39Araqafter the "enum" keyword should work as well
01:43:50nolan2Cool, thanks.
01:44:17Araq(but doesn't ... oh well)
01:48:36nolan2Shall I file a bug?
01:49:27Araqno
01:49:42Araqthe compiler knows the grammar than me
01:49:47Araq*better than
01:50:26nolan2Ah.
01:51:33reactormonkAraq, incl for set checks? And what's the name where TOptions is stored?
01:52:02Araquse contains or "in" for set checks
01:52:35Araqand you shouldn't add an option but a global var isServing: bool instead
01:53:20reactormonkoh
02:01:27reactormonkAraq, now it sigsevs :-(
02:01:42reactormonk http://sprunge.us/VcVS
02:04:14Araq stdoutSocket.send("\c\L")
02:04:25Araqhow can that work when stdoutSocket is nil?
02:04:44Araqso you really need to set it, sorry
02:04:47Araqmy bad
02:07:47dom96what? why would he need to set it in stdin mode?
02:09:05Araqwell nimrod serve really wants to output to a socket
02:09:26Araqwe could change that
02:09:34AraqI dunno what people want/need here
02:09:49Araqbtw I just crashed aporia
02:10:05Araqdragged a tab before the first tab
02:10:18Araqhrm
02:10:22Araqcan't reproduce it
02:10:38*Araq blames gtk instead
02:11:41dom96what's the error?
02:12:25Araqno idea, it just crashed
02:13:10dom96Should have ran it in the terminal
02:25:02dom96filwit: I need to be going to sleep soon, able to show anything yet?
02:26:33*q66 quit (Remote host closed the connection)
02:27:16*Anaphaxeton quit (Remote host closed the connection)
02:31:40dom96good night
02:35:20reactormonkAraq, why not simply http://sprunge.us/TfDL ?
02:36:54reactormonkdoesn't react anymore afterwards :-(
02:45:12Araqhm I dunno
02:55:36reactormonk http://sprunge.us/TWfI whut
02:56:28Araqit shouldn't call gcc when it encountered an error ...
02:56:34Araqbut I have to sleep now
02:56:53NimBotAraq/Nimrod 27fb667 Araq [+0 ±4 -0]: codegen produces better code for complex assignments
02:56:53NimBotAraq/Nimrod 181e242 Araq [+0 ±3 -0]: Merge branch 'master' of github.com:Araq/Nimrod
02:57:03Araqgood night
02:58:17reactormonkoke
02:58:32Amrykidreactormonk, can i have a copy of what was changed?
03:01:04reactormonkAmrykid, sure
03:01:16reactormonkAmrykid, http://sprunge.us/EZSH
03:01:33reactormonkcurl http://sprunge.us/EZSH | git patch
03:01:36reactormonkor so
03:01:49Amrykidreactormonk, thank you
03:07:50Amrykidreactormonk, do I have to run the build.bat/sh again after patching?
03:07:58Amrykidor do i have to re-gen the c source code.
03:08:24reactormonkAmrykid, nah
03:08:26reactormonkjust boot
03:08:35Amrykidah, k
03:11:53Amrykidsomething broke.
03:12:22Amrykidkoch boot -d:release is spamming 'suggest' with the occasional 'hint'
03:15:02*Amrykid tries with a fresh clone
03:20:26reactormonkwhut
03:20:32Amrykidsame result.
03:21:10Amrykid proc suggestSym*(n: PNode, s: PSym) {.inline.} =
03:21:10Amrykid+ echo("suggest")
03:21:59Amrykid0_o nvm, it spams it for a while and then it continues
03:22:16Amrykidbut that echo is getting called a LOT.
03:24:03reactormonkAmrykid, wtf, not once so far
03:24:19reactormonkwell, does it work a second time?
03:24:50Amrykidthen it does it when i go 'idetools --suggest --track:..\lib\js\dom.nim,1,1' when running serve from stdin
03:25:03Amrykidit doesn't crash, it just gets called a lot
03:25:18Amrykidprobably got patched in wrong and still compiled.
03:26:13reactormonkhuh
03:26:37reactormonkdoes spam with the newereds
03:27:02Amrykidsuggest
03:27:02Amrykidsuggest
03:27:02Amrykidsuggest
03:27:02Amrykidsuggest
03:27:02Amrykidsuggest
03:27:03Amrykidsuggest
03:27:05Amrykidsuggest
03:27:07Amrykidsuggest
03:27:08reactormonk^^
03:27:09Amrykidsuggest
03:27:23Amrykid... and it keeps going
03:27:33Amrykidwith occasional [hint]s
03:30:11Amrykid... and when i removed that echo, im not getting anything think from idetools --suggest in stdin :(
03:39:05*fowl joined #nimrod
04:29:28reactormonkAmrykid, try without the serve
04:38:27reactormonkAmrykid, dafuq. Still printing 'suggest' even if I kick the echo
04:38:49reactormonkwait, kicked it
04:39:25reactormonkI see why :-)
04:59:40*filwit quit (Quit: Leaving)
05:07:05*fowl quit (Ping timeout: 260 seconds)
05:09:02reactormonkwtf... endb stops somewhere entirely different
05:19:04*fowl joined #nimrod
05:29:45*fowl quit (Read error: Connection reset by peer)
05:38:02*fowl joined #nimrod
07:53:43*gour joined #nimrod
08:38:03*gour quit (Ping timeout: 245 seconds)
08:42:14*gour joined #nimrod
09:00:33*gour quit (Ping timeout: 245 seconds)
09:03:39*gour joined #nimrod
09:08:42*gour quit (Disconnected by services)
09:08:43*gour_ joined #nimrod
09:13:44*gour_ is now known as gour
09:14:33gourAraq: morning, https://mail.gnome.org/archives/gtk-list/2013-February/msg00055.html - nice illustration why gtk is not good-enough for multi-platform-capable language as nimrod
09:57:03gourfowl: thank you for the pointer about nake...haven't seen it before...do you plan to improve it further?
09:58:51Araqgour: sad to read that message
09:58:58AraqI like Gtk on windows
10:01:22gourit looks gtk is linux-only these days
10:04:13gourotoh, i'll use nimrod on linux and claro/gtk will look ok...let others on other platforms be happy with their platform's defaults or move to linux :-)
10:05:21gourhttps://mail.gnome.org/archives/gtk-list/2013-February/msg00017.html shows how people move to qt (same thread)
10:07:59reactormonkAraq, meh, $ for refs would be farely useful in JS
10:08:25Araqreactormonk: you can always do $x[]
10:09:32reactormonkAraq, sure, but unittest e.g. needs it predefined
10:10:02gourgithub might be ok for hosting only code, but wonder what would you recommend for the whole project: BB or SF?
10:10:18Araqno idea about BB
10:10:26Araqbut SF is ugly and slow
10:10:31gourbitbucket?
10:10:41Araqyes. I never used it
10:10:53gourahh ,ok
10:11:00reactormonkAraq, and proc `$`(x: ref object) = result = $x[] doesn't really work
10:13:42Araqambiguous call; both system.$(x: T): string and lists.$(L: TSinglyLinkedList[T]): string match for: (TSinglyLinkedList[int])
10:13:45Araqbtw
10:14:42Araqso it already broke code :P
10:14:42reactormonkAraq, uh-oh
10:14:54reactormonkno less-specific resolution?
10:15:08reactormonkaka overwriting
10:15:09Araqnot yet, no
10:15:18Araqwell there is overwriting
10:15:20reactormonk:-/
10:15:38Araqbut the overloading resolution rules are deliberately picky
10:16:08Araqwe'll improve them, but for now, I'll revert your system.nim changes I think
10:16:33AraqI don't want to touch that for 0.9.2 again
10:18:23reactormonk:-(
10:20:01gourcool...we use Textile in our (php) cms and BB can understand it in wiki :-)
10:20:20Araqugh you use a php cms ...
10:21:15gouryeah, texpattern...all the python one i've tried really suck in comparison
10:21:58gourand i do not have time to roll my own..trying to be pragmatic...there are more important things in life to do than fiddling with CMS
10:22:15Araqreactormonk: why does proc `$`(x: ref object) = result = $x[] not work?
10:22:23reactormonkAraq, complains about types
10:22:58*Anaphaxeton joined #nimrod
10:26:12reactormonkAraq, invalid type basically
10:30:49gourhttp://www.reddit.com/r/programming/comments/194apa/1993meertens_the_design_of_elegant_languages/ - something for filwit, maybe
10:31:39Anaphaxetongood morning
10:31:54Anaphaxetondont you guys ever sleep?
10:31:54gourmorning Anaphaxeton
10:32:05*gour sleeps at night :-)
10:32:19Anaphaxetoneveryone is European in here?
10:32:52reactormonkAraq, http://sprunge.us/TPbf would you expect callback to be the same or different each time?
10:33:50reactormonkAraq, anyway, the generated code: http://sprunge.us/FVNi
10:34:49reactormonkproblem: there isn't a new instance of the function each time - each of the callback points to the same one
10:35:02reactormonknot sure if intended
10:46:02Araqreactormonk: I'm not sure but I guess we can't map Nimrod's closures to JS's then
10:46:16Araqfixing it may be a bit of work :P
10:46:37reactormonk:-(
10:47:47Araqbut why doesn't JS support this?
10:47:59Araqthe produced code looks sane to me
10:49:16reactormonkI don't know
10:49:48reactormonkI think var X3Aanonymous_26186 = function () might work
10:50:52reactormonknope
10:54:23reactormonkAraq, nah, it's a scope fail.
10:54:33reactormonkAraq, http://sprunge.us/hQMY
10:54:43reactormonkforgot two rather important lines
10:57:47reactormonkitem_26185 is declared outside the loop, therefore changed on each iteration and the callbacks see the last one
11:08:56reactormonkdoesn't help either: http://sprunge.us/LgDi
11:42:25Araqbtw we need a better string literal
11:42:47Araq""" ...""" is not good enough as it can't contain """
11:43:00Araqindentation based would be much better:
11:43:28Araqconst x = ``
11:43:39Araq look, no need for a closing quote whatsoever
11:43:45Araq instead indentation is used
11:46:41AraqI see ... the idea is quite controversial here
12:01:54shevyhehehe
12:06:47Araqshevy: any feedback?
12:08:33shevyAraq on the """ ... """ or indentation?
12:08:46shevyI dont know if I can give quality feedback, I am a nimrod noob after all
12:09:01shevymy main concern is not so much the feature, but the documentation still ;P
12:09:18shevyruby still is not fully documented in its stdlib :(
12:09:46shevyconst x = ``
12:09:54shevythe part following that assigned to x?
12:09:59shevy(I wonder about the two `)
12:10:16Araqwell the two `` would introduce a new verbatim string literal
12:10:36Araqthe compiler would use indentation to figure out when the string literal ends
12:10:36*FreeArtMan joined #nimrod
12:11:34shevyhmm
12:13:06Araqbut oh well ... most tools that lex nimrod cannot handle that
12:16:03*q66 joined #nimrod
12:18:21*FreeArtMan quit (Quit: rm -rf /)
12:26:37NimBotAraq/Nimrod f059a36 Araq [+0 ±1 -0]: don't eval wrong code
12:29:40dom96gour: why not use github?
12:31:03*dom96 wonders what gradha is up to
13:18:32gour dom96 github's tracker is, imho, not very functional. besides that on github it's not possible to redirect page from another domain as homepage...moreover, BB supports more markups than just markdown
13:19:02dom96You mean issue tracker? what's so unfunctional about it?
13:19:13dom96also github supports many things, not just markdown
13:19:38dom96not sure what you mean about redirection, you can point your domain at your github pages.
13:26:56gourdom96: i wasn't aware that github supports more than markdown, issue tracker is, imho, very basic and by redirection i mean this: https://confluence.atlassian.com/display/BITBUCKET/Publishing+a+Website+on+Bitbucket
13:27:33dom96http://pages.github.com/
13:27:49gouriow, github seems to be more suitable for hosting just code than projects, moreover, there are no downloads at github which clearly sucks...BB also allows to have free private repos
13:28:04gouri just don't like ads on SF, so leaning towards BB
13:28:13dom96what does BB's issue tracker have that github's doesn't?
13:42:21gourit could be that it is improved...still, no free private repos & downloads remains as significant issues...SF also hosts free discussions/mailing-lists
13:56:39Amrykidreactormonk, was the issue resolved?
13:59:42Amrykidgour, if it means anything, 'downloads' were recently removed.
14:00:47gourAmrykid: right...and that's bad omen ;)
14:01:21Araqit's much more concerning it takes them *years* to fix the Nimrod bug
14:02:15gourAraq: syntax high.?
14:02:17Araqtheir website still claims the Nimrod compiler mostly consists of C ... >:[
14:02:25gourahh, right
14:03:08gouranother good reason to stay away...though not sure what is the situation on BB/SF in regard
14:36:37*gour has import github repo to BB and submitted ticket to support to recognize Nimrod language 'cause it's not on the list
14:52:26*fowl quit (Ping timeout: 256 seconds)
15:49:12nolan2Where do you put the cdecl pragma on an enum? Tried before the "enum", immediately after, after the values...
15:55:55dom96I'm not sure the cdecl pragma is allowed for enums.
15:56:15dom96As it's a calling convention
15:58:01nolan2Is there a way to mark an entire file for export to C? I'm using Nimrod to write a C library, or rather, a library I might one day use in Nimrod but will start by uing in C.
16:02:59nolan2Ah yeah, cdecl isn't allowed on enums. Thanks.
16:04:58dom96perhaps {.push exportc.} would work
16:11:07nolan2Hmm, no. I get numbers appended to the type names with the push pragma.
16:11:19nolan2Would be nice if it did, though...
16:13:02dom96huh, weird. The manual says "If the argument is missing, the C name is the Nimrod identifier exactly as spelled"
16:13:38nolan2Right, if I have exportc on the declaration, that works. I just can't push exportc.
16:14:02nolan2Which would be nice if I could. I'll ask later if I should file a bug on that.
16:14:28dom96Yeah, i'm sure Araq will let you know when he shows up.
16:14:57*FreeArtMan joined #nimrod
16:15:43nolan2Trying to push {.pure.} fails, so there clearly seems to be some pragma whitelisting going on...or I'm misreading.
16:18:40*gradha joined #nimrod
16:21:44*Trix[a]r_za is now known as Trixar_za
16:33:40dom96gradha: still no luck with the mac os x builder? :\
16:34:52gradhaI guess
16:36:10gradhabut I think the build process may not detect removed binaries, I deleted all files from the git directory and checked them out again, and the logs displayed "kock exited with 1" when I was expecting it to rebuild koch
16:36:35sdw:)
16:36:56gradhaheh, I have the same problem as Araq had with length
16:37:28dom96huh, I can see it rebuilding koch :P
16:37:45gradhaI can't see it doing anything at all
16:38:02gradhamaybe it's locked somewhere? how do you know it's building koch?
16:38:07gradhaI only see it pinging
16:38:30dom96http://build.nimrod-code.org/commits/macosx-x86_64/181e24296271/logs.txt
16:38:43dom96It finished the build, but it resulted in a failure
16:39:12gradhaoh, nice, I wondered were all that was going, as I see no output here
16:39:21dom96I can see ""nimrod c koch.nim" started."
16:39:51dom96it should log this stuff to a local file too IIRC
16:40:05gradhait's not doing that, the log file is zero length
16:40:22gradhathis is the last thing I see on the screen log http://pastebin.com/fKKr5Acf
16:40:30reactormonkAmrykid, nope
16:40:54reactormonkAraq, any idea how to hack that?
16:41:31dom96gradha: perhaps I disabled that
16:41:46dom96But it's fine, you can read the logs online anyway
16:43:05gradhaat least koch is not hogging the cpu now, so I'll let it live and see how it survives
16:43:55dom96well yeah, koch exited this time at least.
16:44:37dom96huh, the reason it fails is: config/nimrod.cfg(59, 1) Error: invalid indentation
16:44:53dom96have you changed its config?
16:45:27gradhaI don't know how to change it
16:45:47gradhathe nimbuild checkout doesn't have modifications, neither has the nimrod one
16:46:50dom96can you bootstrap nimrod yourself?
16:47:03gradhatell me what to do, please, no brain on this side of IRC
16:47:31dom96try running ./koch boot in /Users/gradha/project/nimrod/buildbot/Nimrod
16:48:11gradhayep, invalid indentation
16:48:27gradhathat line points to --parallel_build: "0" # 0 to auto-detect number of processors
16:48:55gradhalooks like not using clang for nimrod really messes nimrod programs
16:49:18dom96yeah, seems like a corruption
16:54:06sdwI have a question about term rewriting macros: http://nimrod-code.org/trmacros.html
16:54:29sdwthe template name in these is just for label purposes, right? or is there another meaning behind them?
16:55:10sdwe.g. the first example could easily have been called template optWhatever{...}, so long as the pattern inside {...} is matched
16:55:50dom96yes
16:57:45reactormonksdw, take a look at unittest
16:59:33gradhagour: reading the posts you linked I found the reason I deeply disliked gtk https://mail.gnome.org/archives/gtk-list/2013-February/msg00026.html
16:59:49gradha"the nature of GTK is such that you cannot "just" include the binaries in the bundle and expect stuff to work"
17:00:09gradhaI remember this being a pain when I wanted to build a binary for linux distribution
17:00:42gradhain general linux projects don't think about binary distribution because, hey, of course anybody can install zillions of compilers and obscure tools to compile hello world
17:00:52gradhaeven grandma!
17:01:28gradhahaha, that quote needs an Aragorn meme
17:03:10*gradha quit (Quit: oversaturated from youtube videos)
17:06:16*gradha joined #nimrod
17:07:01gradhathere you go http://memegenerator.net/instance/35325574
17:10:20dom96lol
17:29:11*gradha quit (Quit: oversaturated from youtube videos)
17:30:31gourgood one
17:32:27*gradha joined #nimrod
17:34:01gradhagour: other than gtk link problem/design, it seems from the outside people have lost motivation for gtk3 and key people are not maintaining the project, which leads to stagnation
17:34:40gradhamaybe the problem is such key people are not easily replaced, or hold "secret info" without which the project is crippled?
17:35:13gradhaI've seen this situation for a few projects and the solution is always somebody mans up and takes the lead, no other way
17:43:11gradhaan overheating laptop is no fun, I should get a newer one, this time with ice
17:50:53*FreeArtMan quit (Quit: rm -rf /)
17:56:47gourgradha: well, what to do or what to use (with nimrod)?
17:57:06gourclaro looks ok and we can assume that gtk will live on linux
17:57:16gourwx also depends on it
17:57:35gourthe other alternative is qt which is huge & bloated
17:57:42dom96best we can do is write our own toolkit
17:58:01gradhamy opinion has always been to separate UI from logic, so I would use gtk/qt for linux, native windows and native mac plus nimrod backend
17:58:12gourwith the current number of active users it would take almost forever :-)
17:58:43gourgradha: lot of extra work, plus there are only gtk bindings available atm
17:58:56Amrykidimplement some sort of mvvm-like solution for that.
17:59:05gourgradha: or do you mean using nimrod logic with e.g. qt in C++?
17:59:14Amrykidthat would allow you to swap the front-end depending on the platoform.
17:59:19dom96I will simply hope that gtk gets its game together.
17:59:21gradhadon't know why you think it's extra work, the native solutions are much faster than coding in crossplatform toolkits (on average)
17:59:34dom96There does still seems to be work going on to have gtk working on windows
18:00:15dom96gradha: For Aporia I would need to code my own cross-platform source view widget, which would be quite a lot of work.
18:00:20gourgradha: e,g, using wx means very little extra work to compile same codebase on multi-platforms
18:01:14gradhadom96: every platform has a good native editor available
18:01:17gournot to speak about the necessity to learn/master several toolkits
18:01:33dom96gradha: What does Windows have?
18:01:42gradhagour: wx also means crap quality, native toolkits have rads which allow you to not have to learn/master anything
18:01:51dom96from my .net days everything is crap.
18:01:56gradhadom96: don't know, haven't used windows for ages, but even MFC had a rich text editor
18:02:06gradhacan't believe there is nothing else at the moment
18:02:08dom96rich text editor is not powerful enough
18:02:28gourgradha: why crap with wx? even qt can produce decent results
18:03:08gourgradha: how would i e.g. combine nimrod logic with native windows gui?
18:03:10gradhagour: the last time I used wx it looked average on windows, horrible on macs, circa five years ago, it was 2.7 I believe
18:03:27gradhagour: just like the crossplatform examples for ios/android
18:03:36gradhacall it like a C library
18:03:39Amrykidwhy not build a easy shell for VS? thats your nimrod ide on windows. As far as designing native windows gui, don't.
18:03:52gourgradha: cannot understand why 'cause it uses native toolkits on each platform
18:04:18gradhadom96: the "rich editor is not powerful enough" is somehow misleading for your situation: text editing is your core aim of the program, you are going to find it hard to have a 3rd party do it exactly right for you
18:05:15gradhagour: being native doesn't mean pretty
18:05:47gradhaalso, people using crossplatform toolkits seem to never use more than one single platform, if they used two they would see their UI doesn't work well with the other
18:06:09gradhaeach OS has particular stuff, you would end up with three different wx layouts, one for each platform, where's the advantage then? use the native one
18:06:28gradhajust to name a single point of pain, think of drag and drop of files on your app icon
18:06:39gourgradha: do not understand...if native toolkits does not look pretty, that's the problem of the platform's toolkit and not wx
18:06:41gradhaevery platform does that in a different incompatible way, there's no way to standardize tha
18:06:59gourexcept if you think about UI...
18:07:25gradhagour: don't take my word for it, try to use any mac wx program, it looks crap
18:08:13gradhaisn't audacity using wxwidgets?
18:08:15gourgradha: otoh, there are 'pro' multi-platform apps done even in gtk, eg. ardour and people use it despite of not being 'native'
18:08:21gradhathere you have a UI which looks horrible on any platform
18:08:24gouryes, audacity is wx
18:08:42gradhawhat is ardour? for a pro software never heard of it
18:08:47gourif you consider it looks horrible it's not due to wx, but eventually due to design
18:09:07gourhttp://ardour.org/
18:09:15gradhayay, another audacity
18:09:24gradhawell, it looks different
18:09:26gourmuch more
18:09:40gradhacompare audacity/ardour screenshots with something like garageband, which sets the standard on macs
18:09:51gradhagarageband looks so pretty it makes you want to use it
18:10:20gourgradha: otoh, you should consider that wx's cocoa port is not finished atm, so using old one does not look good today
18:10:47gradhayes, lets use wx because it's crossplatform, oh wait, some platforms are crap and never finished, oh well
18:11:08gourgradha: i know pro people using ardour, so it means that it's not everything in just look, but in features/functionality as well
18:11:09gradhaqt is probably the most equal on all platforms, maybe because it has strong financial backing
18:11:20gradhabut you are mixing stuff there
18:11:27gradhapeople use the program because it is useful
18:11:31gradhawe are discussing ui looks crap
18:11:46gouryou just complain about the look :-)
18:11:56gradhaaren't we talking about GUIs then?
18:12:45gradhaI can't see how xxx framework implies good software, I'm saying it looks bad, it can actually be wonderful to program in
18:13:37gradhaand that's my reason for not using crossplatform stuff, besides having been burned by both gtk/qt in the past for being shit due to dependencies or platforms being different enough to want to stab myself in the eyes
18:14:24gradhahaven't done GUI stuff in the last five years, so it may well have changed and everything is roses and joy now
18:16:59*Trixar_za is now known as Trix[a]r_za
18:17:22Araqgradha: lol
18:17:52Araqprogramming is getting worse all the time IMO
18:18:39nolan2Araq: Should I be able to {.push exportc.}? The compiler lets me but the C exports still have random numbers appended.
18:18:45*xcombelle joined #nimrod
18:19:10gradhanolan2: could it be because you are not using * to mark stuff as exported?
18:19:25nolan2No.
18:23:25gourgradha: my point is that i'd rather use some multi-platform toolkit developing on linux and having app avaialble for windows/mac than coding 3 apps separately...i'm not into business apps, but open-source and multi-platform toolkit helps despite not providing best/excellent look
18:24:41Araqnolan2: do you use the latest github version?
18:25:02Araqpervasive "push" is a recent feature
18:25:15gourso, if we assume that gtk will still live on linux, then claro could be nice solution for nimrod
18:25:21gradhagour: and my point is despite using a crossplatform gui you end up having separate behaviours for file dialogs, drag and drop behaviour, system tray icons, daemos, etc, so I think you are overestimating the usefulness of such toolkits, unless your aim is really restricted and your program doesn't try to integrate
18:25:34Araqgour: gtk will live on linux for years to come
18:25:47nolan2As of yesterday.
18:25:51Araqand it will do the same for windows
18:25:55gradhancurses, the definitive UI, I vote for that, decade of terminal emulation can't go wrong
18:26:02Araqas there are quite some applications relying on it
18:26:04gourgradha: it will be good-enough for my use-case
18:26:39gourgradha: ncurses & windows?
18:27:01gradhagour: I was joking
18:27:09*gour was not
18:27:26gour:-)
18:28:33gradhathere's another reason I prefer to separate UI, and that is you end up with software which is more easily scriptable, easier to turn to commandline or daemons/servers/web
18:29:05gradhamany times I've found something useful, wanted to use it like a daemon or commandline and yuck, tons of intermingled UI with logic, easier to rewrite from scratch than figure it out
18:29:43gradhagranted this is not a toolkit problem but developers writing software in particular ways
18:29:46gourlet's be concrete: what would you use for writing gui app in nimrod?
18:29:59gradhaI would never use nimrod for gui
18:30:11Araqnolan2: bug report please
18:30:14gourheh...that where we differ ;)
18:30:31nolan2All righty, will file later this afternoon.
18:30:53gourgradha: i want to take advantage of nimrod's language features, enjoy coding and writing gui app
18:31:24gradhaI think the problem is you are on linux, and think crossplatform toolkits will ease you the pain of windows/mac
18:31:53nolan2Also, how does pushing work when you've pushed something that doesn't apply to a certain expression type? Like, if I were to push dynlib and then declare a struct or var.
18:32:23Araqnolan2: it would produce an error
18:32:27nolan2Trying to figure out the best way to build a C library in Nimrod without lots of repetition.
18:32:32gradhanolan2: I'm not finding the problems you have, whatever I exportc and mark with * stays the same in the nimcache C version
18:32:33Araqbut it's easy to change that to a nop instead
18:33:28gradhahmm... not even using *, just {.cdecl, exportc.}
18:33:37nolan2gradha: You're using {.push exportc.} and not putting {.exportc.} on everything?
18:33:52gradhaah, no, sorry, I'm using it on every line, maybe that's the reason
18:34:00nolan2Yeah, it worked fine on every line.
18:34:21nolan2But I'd rather not put it on every line. At the moment this library is being used from C/JNA.
18:34:43*Anaphaxeton quit (Quit: Αποχώρησε)
18:34:55nolan2Or at least, that's the idea.
18:35:38gradhahm, [.push exportc.} gives me the error "invalid pragma: exportc" ?
18:37:31nolan2Not here.
18:38:13*shevy left #nimrod ("I'll be back ... maybe")
18:38:39Araqthe pragmas you push only apply to procs btw
18:38:59Araq(for now)
18:39:14nolan2What is the correct procedure for updating a github build? Do I have to unzip csources.zip again? And how does build.sh factor in?
18:39:47nolan2Ah, so maybe that is the issue. I'm looking at enums/objects.
18:40:40gourgradha: i do not have time to code for windows and neither have mac, but by using multi-platform toolkit, i can provide windows installer for my app and let other devs, if they want improve it and/or tailor for mac...i'll be happy with linux version
18:42:01Araqnolan2: you only have to unzip csources and build.sh if we broke bootstrapping
18:42:20Araqotherwise you can git pull && koch boot [-d:release]
18:42:47Araqwe try hard to not break bootstrapping but it always happens ;-)
18:42:49gradhagour: good luck with that
18:43:00Araq0.9.0 can't compile the current 0.9.1 for instance
18:46:04nolan2OK, looks like functions are exported correctly. So the problem isn't that {.push exportc.} doesn't work, but rather that it doesn't apply to things other than procs.
18:46:28gourgradha: thanks ;)
18:46:50Araqand thinking about it ... it makes some sense
18:46:51nolan2So sounds like it's a known issue.
18:47:15Araqmost of the time you want it for procs
18:47:43Araqand you can't differentiate easily otherwise
18:48:00Araqfor instance, 'pure' for procs means something different than for types
18:48:31nolan2Maybe I'm just using Nimrod in a way it isn't intended. I'd like to use it to build C libraries for native Android development, until we get a mobile platform that can run native code, at which point I'd just use pure Nimrod.
18:48:32Araqhmm maybe we should document it and leave it like it is?
18:48:55nolan2So for that use case, it'd make sense to say "everything in this file should be as C-friendly as possible."
18:49:09nolan2Rather than "this should be C-friendly, and this, and this too..."
18:49:22Araqdunno
18:49:37Araqthe exposed interface should be kept small anyway :P
18:49:52gradhaandroid implies JNI, which is a pain in itself, have you looked at javacpp?
18:50:04nolan2Sure, but having to repeat everything for the exposed interface certainly isn't elegant.
18:50:14gradhaI was planning to use http://code.google.com/p/javacpp/ for android bindings, but got distracted
18:50:59nolan2It looks like latest JNA supports Android, not sure how well. I was going to port part of my project to native code, then try using JNA.
18:51:50nolan2Make most of the heavy lifting happen in native code, then bridge it to the UI via Phonegap. Then, theoretically, an IOS port would just be a matter of rewriting the plugin and ensuring all of my native libs exist on IOS.
18:51:51gradhathe problem I see is that JNA will never figure out memory handling between the java gc and nimrods
18:52:04Araqnolan2: I think it's better style to introduce a new pragma like {.pragma: my, cdecl, exportc: "prefix_$1".} and annotate every exported proc with {.my.} instead
18:52:09gradhasay, who takes ownership of an object
18:52:35Araqbut that's just me, "push" works too
18:53:45gradhanice JNA features, "VM crash protection (optional)"
18:54:02*nolan2 shrugs, dunno. It's all experimental at this point, I might ultimately scrap it.
18:55:06*FreeArtMan joined #nimrod
19:02:26gradhagour: btw, how are you going to use gtk for windows 8 tiles?
19:12:27Amrykidgradha, you can't.
19:21:03reactormonkAraq, hmm, I expected it to be different, but C and JS produce 4x4 here: http://sprunge.us/CZNd
19:22:45nolan2Should I file an issue about push not working for non-procs? I worry about adding corner cases like that--seems like I should be able to push anywhere I can use a pragma to begin with. I also like the idea of unsupported push pragmas just being no-op on unsupported expressions.
19:23:50nolan2Or is that just how it will work? I don't want to step on toes.
19:26:05reactormonkAraq, looks like I have to do the nimrod equivalent of http://tobyho.com/2011/11/02/callbacks-in-loops/
19:26:15reactormonkprocs in procs \o/
19:27:00Araqreactormonk: no, you need to do 'var i = i' though to capture it by value
19:29:08Araqnolan2: if you report it, I'll make it a feature request
19:29:17nolan2OK.
19:29:51Araqmaking it a nop sounds error-prone in the long run though
19:30:00reactormonkAraq, doesn't work
19:30:11Araqfor JS?
19:30:11reactormonkwait, it works in c
19:30:15reactormonkYep.
19:30:44Araqwell we should really activate Nimrod's lambda-lifting for the JS backend ...
19:31:27nolan2I guess I'm fine with dropping the nop bit. Should I be able to export enums do dynamic libraries? That's the main issue I'm running up against.
19:31:36nolan2Even if not now, eventually?
19:31:40reactormonkAraq, submitted the issue
19:32:09Araqreactormonk: you should implement it
19:32:14nolan2Or are those only needed for calling code?
19:32:38Araqnolan2: the codegen cannot transform a Nimrod enum into a C enum
19:33:02gourgradha: no idea...i haven't used any redmond-based OS after xp...otoh, claro gui does not use gtk on windows, afaik
19:33:03Araqmake a feature request for that
19:33:11nolan2OK.
19:33:49nolan2So exportc on more than procs, and transforming Nimrod enums to C.
19:34:20*nolan2 guesses the former might imply the latter, but will file them both to be thorough.
19:34:20Araqbut then I don't know how to do that
19:34:48AraqNimrod's enums use the smallest amount of bytes
19:35:03AraqC's enum is 'int'
19:36:02Araqwe can make it produce a typedef + #defines
19:36:09gradhagour: if you are not even thinking about the most common platform for desktop software on earth you shouldn't even worry about crossplatform issues
19:43:54sdwHow does one access the command line arguments used to invoke a nimrod program?
19:44:11Araqsdw: learn to use the index
19:44:41gradhasdw: call ParamCount() and paramStr(), from os module I believe
19:45:08gradhaor use the optparse module for a convenient iterator
19:45:39gradhasorry, parseopt
19:47:35*exhu joined #nimrod
19:51:32exhudom96, http://www.scintilla.org/index.html -- in case someone want to implement a new editor for aporia on new gui toolkit, also FLTK has syntax-highlighting text editor :)
19:52:29*Anaphaxeton joined #nimrod
19:54:33Araqexhu: scintilla used to run like crap on my linux
19:54:42AraqI even tried to fix the bug
19:55:16AraqI avoid it now ;-)
19:55:58exhui used geany text editor which is based around scintilla, never had a problem though.
19:56:52exhui prefere jedit, although it cannot highlight nimrod syntax properly, there's no feature to describe "*" asterisk as a "public" modifier to a name.
19:57:26Araq*shrug* so what? highlight it as an operator instead
19:58:54exhuAraq, yes, it does it, but then procs are not highlighted properly. i don't blame nimrod's syntax, i say it's hard to abandon familiar tool (jedit).
19:59:37AraqI only care about comments, keywords and string literals
19:59:49Araqthese should have a different color etc.
20:00:08Araqmore syntax highlighting just hurts IME
20:00:27Araqlike "this is a declaration context" etc. ... I don't need that
20:02:39exhuwithout IDE i found it useful limiting source files to 80 column length -- i can split editor and see two files on my 16:9 display side by side.
20:03:02Araqhah, I do exactly that too :-)
20:03:44exhuafter i discovered that, i manually fixed all files in my project to not contain lines more than 80-81 characters.
20:04:12gradhaI tend to use the other half for documentation/webbrowsing, I'm a poor person without secondary monitor
20:04:47gradhaannoys me to death people using 300 colum wide settings
20:04:59exhui have one fullhd monitor, i wanted 16:10 but there were none of good picture quality available except 16:9 one :( Feel need for vertical space.
20:05:53exhubut people at the office decided to use 160 or more line length just because it fits their visual studio layout, sick.
20:06:18gradhauh oh, haven't been using ipad as secondary monitor because mountain lion has a bug with secondary monitors on sleep, but then I bought the newer lion OS <facepalm>
20:06:21exhui mean my work in a software development team.
20:06:40gradhayeah, I'm working now with guys who have dual extra large monitors, all wide
20:06:44Araqthe compiler can warn about lines longer than 80 chars btw :-)
20:06:51gradhaawesome
20:06:59Araqat some point I even wanted to forbid them :P
20:07:02gradhacan you make it a mandatory error?
20:07:05gradhalol
20:07:07Araqnah
20:07:16Araqlots of wrappers have longer lines anyway
20:07:28Araqand I never fixed it because I never look at them
20:07:33exhuit's also easy to do merge/diff comparison when you have two versions side by side fit the editor panes.
20:07:51gourgradha: the kind of 'reference' app (Maitreya) which i mentioned some time ago is written in wx (C++) and works nicely on multi-platforms. if i'd be inclined to work in C++ i would probably use same, but when using nimrod, it does not make much difference. gtk bindings are available, but claro offers some abstraction and it might be ported one day to nimrod which would improve both gui experience in nimrod
20:07:53gourand language itself
20:08:00*xcombelle quit (Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC.)
20:08:42gradhagour: I think you should stop pretending to write crossplatform software since you don't really care, just use what is easier and call it a day. If the software is useful somebody will come later and make it work on their platform.
20:09:19Araqor use an emulator on other OSes ;-)
20:09:37gradhaindeed, embed qubeos and claim security too
20:09:49gradhahttp://qubes-os.org/trac
20:10:03gourgradha: i do not pretend writing crossplatform app, but i just want to use such toolkit ;)
20:10:34gradhathen go for it, unless you like argueing on IRC better
20:10:38gourbut it does not make difference in choosing the right one...not many options
20:12:09gourdo i argue? your argument is that's better to use native toolkit for each platform, mine is to use some crossplatform one...that's all
20:12:42exhuand back to GUI business, I found toolkits drawing controls themselves better for crossplatform apps, like FOX, FLTK, java swing, fpgui... just because the apps look 98% the same on all platforms. Certainly the apps look inferior on mac with Win95 themed buttons, but they work at least -)
20:12:49gradhaargueing, talking, whatever, it takes time from actual coding
20:13:21gouri see...excuse me...i'll refrain doing it again, hopefully
20:13:30gradhaexhu: aiming for mac look&feel is such a hit and miss nowadays, not even Apple does it consistently
20:14:08gradhagour: by no means I'm telling you to stop
20:14:22gourexhu: none of which are available for nimrod
20:14:58exhugour, i will look at swig xml output. i wonder if it's possible to generate sane bindings for c++ stuff.
20:15:40gourexhu: swig can bind c++ stuff, but i do not know about its xml output
20:15:47gradhagour: btw, just run this matreya and it's plain ugly, I woudn't use it based on how it looks, even the icons don't have antialiasing! What are we, in 1980?
20:15:52exhuand i think having several toolkits/bindings for nimrod is a good thing.
20:16:15gradhathe extra font looks awesome, though
20:16:51gourgradha: it's niche software...not many options and it does what it's supposed to - calculate properly. then it's the job of end-user to make use of it...it's not gaming app
20:17:11exhugradha, does windows 7 or maybe 8 support svg or png icons at last?
20:17:13gouriow, it's meant for pros
20:17:49gradhaexhu: I expect not, even macosx dropped the ball and went for doubling pixel resolution. Man, how crap.
20:17:53gourgradha: and i'm also not sure how bright is the future of open-source development for windows/mac platforms in general
20:18:25gradhagour: example of crap gui layout http://dl.dropbox.com/u/145894/t/Captura%20de%20pantalla%202013-02-24%20a%20la%28s%29%2021.17.06.png
20:18:34gradhanote how text doesn't even fit the window
20:18:54*gour nods
20:19:01gourbut it's not toolkit's fault
20:19:09gradhaI would say it is
20:19:22gradhaunless you accept GUI toolkits which you have to hand hold in their core job
20:19:23gourone can write crappy software even in nimrod
20:19:51gourgradha: i know many devs who do not want to use layout managers, but coding ui by hand
20:20:02gradhayeah, precisely, they make the crappiest UIs
20:20:16exhugradha, that's why i am against native widgets for crossplatform toolkits, even java has such glitches if you turn on "native theme".
20:21:29gradhabtw, note it took five iterations of iOS versions to get internationalized layout working, but at least they are trying, other toolkits just say "meh, too difficult"
20:22:47gradhaI remember the trac developers saying "we don't care about i18n now, we will add it in a future version". Famous last words before turning insane.
20:23:36*gour stopped following it around 0.10
20:26:55*exhu quit (Quit: Ex-Chat)
20:50:43*Anaphaxeton quit (Remote host closed the connection)
20:51:24*Anaphaxeton joined #nimrod
20:52:56reactormonkAraq, lambda lifting?
20:57:05*nolan2 quit (Ping timeout: 252 seconds)
20:59:43sdwhttp://nimrod-code.org/intern.html#lambda-lifting_879289628 ;P
21:09:11*FreeArtMan quit (Ping timeout: 260 seconds)
21:09:18Araqwow I didn't remember I documented lambda lifting :-)
21:12:17Araqand the docs are even up to date :P
21:25:13dom96Araq: I found a pretty nice cmd.exe replacement for Windows: ConEmu.
21:26:26Araqmy connection is too bad to browse
21:51:08Araqping sdw
22:34:48dom96sdw: did you ever manage to run Aporia?
22:44:09*gradha quit (Quit: bbl, have youtube videos to watch)
22:47:07*nolan2 joined #nimrod
23:00:49*gour quit (Quit: WeeChat 0.4.0)
23:01:40*Anaphaxeton quit (Quit: Αποχώρησε)
23:03:43*Anaphaxeton joined #nimrod
23:20:22*fowl joined #nimrod
23:42:56ccssnetaporia looks fun :)
23:42:59ccssnetill try that soon
23:55:28*Anaphaxeton quit (Quit: Αποχώρησε)