<<27-04-2013>>

00:15:43fowlit works somewhat :> https://gist.github.com/fowlmouth/5466040
00:20:49*ack006 joined #nimrod
00:22:14*miki_ joined #nimrod
00:22:26*miki_ quit (Client Quit)
00:22:39*ack006 quit (Client Quit)
00:22:53*ack006 joined #nimrod
00:27:50*Trixar_za is now known as Trix[a]r_za
00:32:02*fowl quit (Ping timeout: 258 seconds)
00:32:56*ack006 quit (Quit: Leaving)
03:47:48*fowl joined #nimrod
04:49:46*OrionPK quit (Quit: Leaving)
05:29:34*r0bglees0n quit (Read error: Connection reset by peer)
06:23:03*Trix[a]r_za is now known as Trixar_za
07:40:16*Trixar_za is now known as Trix[a]r_za
07:48:39*Trix[a]r_za is now known as Trixar_za
08:13:38*Trixar_za is now known as Trix[a]r_za
09:16:51*gradha joined #nimrod
09:22:47*Trix[a]r_za is now known as Trixar_za
09:29:15*Trixar_za is now known as Trix[a]r_za
09:33:17Araqfowl: can you make a simple test for: table[field].needsRef = true is silently failing
09:33:20AraqI think I already know how to fix it :-)
09:33:22Araqbut please make that a separate bug report
09:34:04fowlAraq: sure
09:34:50Araqand please have a look at #405
09:35:14AraqI'm not sure what's wrong there, there is no comment node skipping afaik
09:35:33Araqmost comments are AST attributes though and not a separate nkCommentStmt
09:36:51fowli did try with dumptree and dumptree_imm a simple `proc foo = \n ## test \n stmt` and it worked fine
09:37:47Araqalright, I'll simply answer him
09:47:13fowlAraq: my components module is a beast now :)
09:47:43Araqso it works?
09:48:00fowlyes
09:49:03fowlhttps://github.com/fowlmouth/nimlibs/blob/master/examples/sdl_components.nim
09:49:17Araqnow write a blog post about it and reddit it :-)
09:50:11Araqyou should compare it to the Ruby version
09:50:32Araqand how you got to that Nimrod design
09:50:44Araqwhich I'm sure differs quite a lot from Ruby's
09:52:41fowlim not much of a writer >_____________>
09:53:23Araqme neither :-/
09:54:51fowlwhen can i use `do`
09:55:06Araqit works with the new parser
09:55:28AraqI need to fix docgen with it and then I may merge it to master
09:56:15Araqhmm I guess it was a mistake to not create a new branch for the new JS codegen :-)
09:56:31fowlit would look like this right componentInterface(CVelocity, update) do (dt: float):
09:56:43Araqright
09:57:05fowlsweet
10:05:13fowlis there anyway to force a type for method dispatch, i want to call `foo` for PA on a PB is the only way around this to use a proc
10:07:34Araqyes, type conversions don't work for this
10:09:13fowlan explicit one should imo
10:10:35fowli tried to run buildIndex in compiler/ and it built empty :/
10:14:37AraqI don't know what that means
10:15:19Araq"explicit conversions should pretend dynamic dispatch"
10:15:38AraqI like that, it's a special case but many people think it should work this way
10:15:43Araq--> feature request ;-)
10:15:57fowl`nimrod buildIndex`
10:16:08fowlit says build an index for the whole documentation
10:16:24Araqyeah well check how koch.nim invokes it
10:16:36Araqyou need to build the docs so that there .idx files
10:16:51Araqthese .idx files are then collected via "buildIndex"
10:16:57Araqbbl
10:17:08fowlah ok
10:35:59*q66 joined #nimrod
10:36:55fowlcool because then python-style super is possible
10:45:09gradhafixed a problem and added timings, it takes 30 minutes to generate http://dl.dropboxusercontent.com/u/145894/t/the_hyperlink_vs_nimrod.html
10:48:57Araqgradha: idetools is supposed to be invoked for '.' presses and the like, not for every single key press
10:49:15Araqso I'm not sure there is a performance problem
10:49:56Araqwell I know there is one, that's why zahary started the "nimrod serve" mode
11:02:24gradhayes, I should have named this nimrod_raytracer
11:17:38gradhaanother reason for doing this brute force is that the output seems wrong for certain lines/columns, so displaying it in an easy way highlights bugs
11:19:01gradhafor instance, if you hover over one of the constants, line 6, column 10, it spits out the file but points to line 6 column 14
11:19:18gradhaif 14 is a column number, shouldn't it point to the beginning of the word?
11:19:30gradhaor maybe 14 is something else?
11:43:47*xcombelle joined #nimrod
11:55:29gradhaof course it could be that I'm passing wrong line/cols to idetools
11:57:07*gradha quit (Quit: bbl, have youtube videos to watch)
11:58:50*zahary joined #nimrod
12:36:33*gradha joined #nimrod
12:37:29gradhazahary: shouldn't nimrod serve have some sort of EOL concept when answering commands?
12:41:58gradhafor instance, running idetools on a line/col with import won't return anything for --def or --usages, but I would expect the server to be chatty and say "nothing here, move along" as a kind of ack
13:09:02AraqI don't get asm.js ... how are you supposed to annotate non scalar types like "array of int"?
13:09:35Araqall you can do is |0 for ints and + for floats and crap like that
13:09:57Araqthings that any JIT most likely knows already
13:24:16*gradha quit (Quit: bbl, have youtube videos to watch)
13:51:38*xcombelle quit (Remote host closed the connection)
14:27:00reactormonkAraq, yeah, that's about it
14:28:00Araqwell the spec is not finished yet
14:28:23Araqhowever I have no idea how the Unreal Engine could have been ported to that
14:30:44zaharyit takes into considerations the typed javascript arrays AFAIK
14:31:35dom96hello
14:31:57zaharybut sure, they are not really equivalent to C arrays on the stack or as object data members
14:34:34Araqindeed https://developer.mozilla.org/en-US/docs/JavaScript/Typed_arrays is way more useful
14:35:48Araqwell this means Nimrod's object can either be a "blob" or mapped to a JS object ...
14:36:31Araqand obj.x can compile to 2 vastly different things ...
14:36:36dom96Araq: You're adding asm.js support?
14:36:51Araqplanning it
14:37:57AraqI'm rewriting the JS backend to see how it works with an expr/stmt unification and it turns out it's much easier to do than I thought
14:38:29dom96That's good news.
14:39:26zaharytheoretically, the blob vs object choice can be applied on a per-type level
14:39:52Araqzahary: yeah it should be a blob unless the type is importc'ed or exportc'ed
14:40:21Araqbut this still means the codegen needs to support both modes
14:40:44zaharywell, there are some trade-offs in ease of debugging, etc. some pragmas that control the choice can be useful
14:41:02Araqhmm good point
14:41:10AraqI have no experience with JS debuggers though
14:41:20zaharythey are pretty good
14:48:59Araqmaybe only some types should become for blobs then for debugging experience, I don't know
14:51:36zaharywell, one can easily use pragma push to have different setups for debug/release buidls
14:57:59Araqyeah except 'push' doesn't affect type pragmas, for better or worse
15:00:03*OrionPK joined #nimrod
15:02:10zaharyhmm, is this on purpose?
15:02:36Araqyeah because unfortunately I re-used pragma names
15:02:54Araq"pure" for types means something different than for procs
15:02:57zaharythere could be pushTypePragma or something
15:03:03Araqyeah
15:03:33Araqbut then I find push/pop quite ugly, maybe there is a better way
15:06:35dom96maybe you should allow macros to edit this "global pragma list", you could then have different lists for procs, templates, types and whatever else is needed.
15:09:52zaharywell, top-level macros can edit the list right now by outputting pragmas
15:10:59zaharyI don't thing push/pop is "ugly" semantically? do you dislike it in general or just the way it looks?
15:11:23Araqyou can also easily do: {.pragma debug: exportc.} for a release build and {.pragma debug.} for a debug build
15:11:42Araqand annotate your types with that
15:12:53zaharyexactly, I'll do {.pragma myjslib .} containing all the proper debug/release flags, but then I want to be lazy and just apply it to the whole file
15:13:10reactormonk$
15:15:22Araqyou could also pass all your code to a macro myjslib
15:16:00AraqI dunno, lets make a push type pragmas pragma then
15:26:46Araqugh ... why can't NaCl simply win instead?
15:29:21OrionPKlet me call up ballmer and ask him to add it to IE12
15:30:06AraqIE's JS support is not on par with firefox's / chrome's either afaik
15:30:13OrionPKactually
15:30:17OrionPKit's faster from my tests
15:30:20OrionPK(surprisingly)
15:30:28Araqinteresting
15:30:40OrionPKcheck out some jsperfs
15:30:48Araqwhat VM do they use now?
15:30:57OrionPKchakra?
15:31:39OrionPKhttp://jsperf.com/testingfloatarrays
15:33:42OrionPKIE10 doesnt get enough credit for how solid it really is, IE11 will be even better with WebGL support
15:33:52OrionPK(I'm still going to be using Chrome though xD)
15:46:30dom96indeed. IE performance is becoming quite impressive.
15:46:41dom96But i am a devoted Firefox fanboy :P
15:47:50OrionPKI was, up until chrome came out
15:48:04OrionPKit was too leaky, memorywise
15:49:19dom96Have you tried it recently?
15:49:28OrionPKof course
15:49:37OrionPKim primarily a web developer
15:49:45OrionPKI dont use it for casual browsing though
15:49:55dom96I think they have done a very good job addressing memory issues.
15:50:04OrionPKyeah, it's definitely a lot better now
15:50:09OrionPKthan it was around the time chrome came out
15:50:52dom96I especially love that it doesn't load all tabs at once now when it's launched.
15:51:14dom96I am a major tab hoarder so I love that.
15:51:42OrionPKwhat ever happened to their crazy tab idea
15:52:34dom96what was that?
15:52:42OrionPKtrying to remember the details..
15:52:44OrionPKtab groups?
15:52:53OrionPKhttp://www8.pcmag.com/media/images/252130-firefox-s-tab-groups.jpg
15:53:23dom96oh yeah
15:53:26dom96That's still there.
15:53:30dom96It's a great feature also.
15:53:37OrionPKnice
15:53:52dom96I actually forgot it exists heh
15:55:04dom96I haven't used it when it was introduced because it encouraged me to have even more tabs open at once (at the time when it was introduced all tabs were loaded at once IIRC).
15:56:14OrionPKlol
15:56:31OrionPKu reminded me, I used to run IRC through firefox.
17:02:59NimBotnimrod-code/Aporia 1e944df Dominik Picheta [+0 ±3 -0]: Fixes highlight not being reset when typing.
17:02:59NimBotnimrod-code/Aporia 29de364 Dominik Picheta [+0 ±1 -0]: Bugfix: Highlighted words are now preserved across tabs.
17:02:59NimBotnimrod-code/Aporia 114e0c9 Dominik Picheta [+0 ±2 -0]: Bugfix: Files saved in /tmp get a special label again.
17:02:59NimBotnimrod-code/Aporia 2566116 Dominik Picheta [+0 ±2 -0]: Bugfix: Unsaved tabs are no longer added to the recently closed list.
17:47:55*zahary quit (Quit: Leaving.)
20:53:51*zahary joined #nimrod
20:56:19Araqzahary: people here long for 'nimrod serve' to work if you haven't noticed already ... ;-)
21:04:38zaharyyeah, me too, but my new job is still mostly killing me
21:04:51zaharyit should get better with time
21:06:18Araqalright so you have nothing in the pipeline and I can fix it should I feel like it :-)
21:08:10zaharyI have plans for next tasks there, but feel free to work on it
21:08:48zaharyin particular, I'm more interested in continuous compilation. it seems most people here care about the suggest feature that I haven't though through yet
21:09:33zaharythere are certain problems, because suggest is just another compiler run and it must be isolated somehow (to not produce side effects)
21:09:45Araqindeed 'suggest' is what they want
21:10:49Araqbtw I noticed the compiler now lists instantiations in its output
21:11:06Araqis that a new bug caused by your changes how generics are handled?
21:11:14Araqor it I simply miss that bug befores?
21:11:17Araq*before
21:11:47zaharywhat do you mean by "lists"?
21:11:50zaharyin error messages?
21:12:06Araqyes; this means that an instantiation is put persistently into the symbol table
21:12:16Araqwell I think it means that
21:13:56zaharyhmm, but it always listed instantiations (similar to templates)? I'm still not sure whether we are talking about the same thing
21:15:16Araqtype mismatch: got foo(int, int) but expected: foo(float, float); foo(T, T) # where foo(float, float) only exists as an instantiation
21:16:15zaharyI see.
21:17:17zaharycould be a bug of mine, but I can't think of any particular change that may be suspicious. the most significant thing I changed is where the instantiation cache is stored
21:18:46Araqit can happen if you changed scopes I think
21:19:20Araqfor recursive generic procs it is added to the symbol table I think
21:19:32Araqbut to an inner scope
21:19:49Araqoh well, I'll look into it
21:21:23zaharythere is an addDecl call in instantiateBody
21:22:07zaharybut maybe it always was there. there seems to be an openScope in generateInstance before calling instantiateBody
21:26:16Araqactually the addDecl shouldn't be necessary at all
21:26:45Araqinstead the "merging" of instantiations should prevent recursive instantiations
21:27:21fowlis there a way to stringify T here for the warning: https://github.com/fowlmouth/nimlibs/blob/master/fowltek/tmaybe.nim#L12
21:28:41zaharythere is name(T: typedesc) in the typetraits module
21:29:29Araqyeah and thanks to that I mustn't change types.TypeToString :P
21:30:24Araqbut it's fine, better than code duplication
21:30:45fowlcool
21:36:01Araqfowl: do you want to fix the 'tab[x].flag = true' bug?
21:36:13Araqyou need to do:
21:36:26fowlim having trouble replicating it
21:38:38Araqproc copyValue(n: PNode): PNode = if n.kind == nkRefTy: n else: n.copyTree
21:38:56Araqand then replace the right copyTree calls by calls to copyValue in evals.nim
21:41:32Araqwhere "right calls" means almost everywhere except for mNCopyNimTree
21:41:38Araqand perhaps a few others :P
22:59:38*zahary quit (Quit: Leaving.)
23:02:50*fowl quit (Ping timeout: 258 seconds)
23:20:13*fowl joined #nimrod