<< 01-07-2013 >>

00:00:19dom96nake is pretty freaking awesome, I can finally forget about make completely :)
00:00:39dom96fowl-: oh, cool. You got nimkernel to work?
00:02:33EXetoCit happens when adding the -o switch. "... extccomp.nim(626) CallCCompiler strutils.nim(1143) addf"
00:02:42EXetoCwill open an issue tomorrow
00:04:37*q66 quit (Quit: Leaving)
00:06:04OrionPKdoes nake check file modified times?
00:07:05EXetoCdoes it need to if the compiler does? assuming that 'nimcache' is what I think it is
00:08:02OrionPKhmm, good point.
00:11:25EXetoC"Warning: The compilation cache is still highly experimental!"
00:12:21dom96good night!
00:22:00*XAMPP-8 quit (Ping timeout: 246 seconds)
01:08:59*EXetoC quit (Quit: WeeChat 0.4.1)
01:15:14*XAMPP-8 joined #nimrod
01:21:44reactormonkdom96, 6 downvotes already ^^
01:23:19OrionPKreddit adds fake downvotes
01:23:43OrionPKapparently to help prevent gaming the vote system
01:38:19*XAMPP-8 quit (Ping timeout: 276 seconds)
01:39:36*XAMPP-8 joined #nimrod
02:27:17*XAMPP_8 joined #nimrod
02:27:40*XAMPP-8 quit (Ping timeout: 268 seconds)
02:33:29reactormonkO.o?
03:08:19*XAMPP_8 quit (Ping timeout: 264 seconds)
03:11:03*XAMPP_8 joined #nimrod
04:11:56*XAMPP_8 quit (Ping timeout: 240 seconds)
04:13:05*XAMPP_8 joined #nimrod
04:14:42*OrionPK quit (Read error: Connection reset by peer)
05:23:04*XAMPP_8 quit (Ping timeout: 256 seconds)
05:23:32*XAMPP_8 joined #nimrod
06:30:25*XAMPP_8 quit (Ping timeout: 248 seconds)
07:07:29*Araq_ joined #nimrod
08:55:48*Boscop quit (Read error: Connection reset by peer)
08:56:53*Boscop joined #nimrod
09:26:23*XAMPP_8 joined #nimrod
09:30:48*XAMPP_8 quit (Ping timeout: 246 seconds)
10:01:08*EXetoC joined #nimrod
10:15:17*Araq_ quit (Read error: Connection timed out)
10:16:45*Araq_ joined #nimrod
10:35:23*Kektain joined #nimrod
10:38:19Araq_hi Kektain, welcome
10:38:27KektainHey :D
10:38:47KektainAny chance you have time to help a noob working through the tutorial?
10:39:05Araq_not now, sorry, bbl
10:39:26Kektainah, no worries
11:02:03*Kektain quit (Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803])
11:22:21EXetoCwoot
11:39:43*BitPuffin joined #nimrod
11:47:54EXetoCBitPuffin: sup
11:48:24*q66 joined #nimrod
11:49:48BitPuffinEXetoC: stuff
11:49:52BitPuffinEXetoC: you?
11:54:50EXetoCBitPuffin: I'm also doing stuff!
11:55:25BitPuffinEXetoC: cool! what kind of stuff?
12:11:48EXetoCBitPuffin: nothing useful, that's for sure, but now it's time to append some bits
12:12:10BitPuffinEXetoC: well that's vague :)
12:12:32EXetoCgonna have a go at a basic opengl framework. you kinda get sick of it though, after about the 7th time :>
12:13:55BitPuffinHmm!
12:13:58BitPuffincould be useful
12:14:11BitPuffinI guess OpenGL is pretty much good as it is, at least when using it from C
12:16:16Araq_nimrod is actually better at opengl than C as it uses dead code elimination for the opengl wrapper
12:16:38Araq_this means only the extensions you really use are required at runtime
12:18:18BitPuffinaha, now that's good
12:18:29BitPuffinyou mean like you can when stuff out
12:18:38BitPuffinand case
12:18:57Araq_no I mean the opengl wrapper uses special compiler magic ;-)
12:19:11Araq_no need for you to 'when' anything
12:21:52Araq_well ... ugh, it's hard to explain
12:22:19Araq_ordinary wrappers gain dead code elimination but opengl is a tricky beast with the extensions loaded at runtime
12:22:37Araq_but we managed to get it for the opengl wrapper too
12:24:51BitPuffinwell not when I realized (unless you are for example using a windows specific extension if such a thing exists, can't remember), but case! If a certain extension is available at runtime
12:25:00BitPuffinor maybe you don't need to case either
12:27:03Araq_exactly, you don't need to do that either
12:28:47BitPuffininteresting
12:29:19BitPuffinwill that always work though? Like maybe that breaks some rendering operations
12:29:56EXetoCBitPuffin: I might as well just abstract away a couple of things
12:30:34EXetoClike shader loading
12:30:59Araq_BitPuffin: can't imagine how it breaks anything, I think you still don't understand me
12:31:25BitPuffinI do understand
12:31:30BitPuffinOkay for example
12:31:50BitPuffinsay I'm doing something, I know that I can do it a standard way, but that there is also a better way through the use of an extension
12:32:08BitPuffinso I'll do if (extension blabla) else blabla
12:32:17BitPuffinwill that still work?
12:33:31Araq_sure
12:34:11Araq_it's just that the wrapper doesn't load the hundreds of other opengl functions that you *don't* use
12:34:21BitPuffinat runtime?
12:34:31Araq_at compiletime
12:34:53BitPuffinbut how can it know that I'll use the extension then if it depends on what's available at runtime
12:36:06BitPuffinstill wins over C though, so I see your point
12:36:55Araq_it's like the wrapper checking your source what functions you call
12:37:08Araq_and only these will be bound at program runtime
12:37:14Araq_*program startup
12:45:05BitPuffinAraq_: so then it is a good idea to when platform specific things out
12:45:49BitPuffincase won't make a difference to what stuff is bound I guess but you still need to do it
12:46:46Araq_well yes you still need to check "extension available" at runtime, no way to prevent that
12:46:53BitPuffinyep
12:48:09BitPuffinAraq_: any plans to make nimrod js compiler use asm.js?
12:48:24BitPuffinnimrod to js
12:49:31Araq_I looked and asm.js and can't take it seriously
12:49:34Araq_*at
12:50:10Araq_it's pretty easy to make the codegen emit asm.js once it's ready and stable
12:54:30BitPuffinAraq_: why can't you take it seriously?
12:55:39Araq_|0 # marks as integer. As if that would help a decent JIT.
12:56:00Araq_the hard part are the compound types and asm.js doesn't even have a notation for them
12:56:31Araq_I heard I'm supposed to use typed arrays for them but then that's not asm.js
13:07:50Araq_oh I see they updated the asm.js spec ... :-)
13:08:00Araq_so now it mentions typed arrays
13:30:32*EXetoC is now known as EXetoC_
13:55:16*Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 21.0/20130511120803])
14:41:30nihathraeldom96: https://github.com/nimrod-code/Aporia/pull/36 I opened a new PR containig some enhancements for the suggest feature, let me know if there is something you'd like to see differently or improved
16:05:25*Associat0r quit (Ping timeout: 276 seconds)
16:14:17*Endy joined #nimrod
16:41:56EXetoC_ä
16:49:15*DAddYE joined #nimrod
17:05:34*Sergio96_ joined #nimrod
17:05:53*Sergio96_ is now known as Sergio965
17:12:19EXetoC_fowl-: https://gist.github.com/EXetoC/5902674 that happens if -o is there
17:12:36EXetoC_I guess it's a Nimrod bug though. Will try to reduce it later
17:16:58fowl-EXetoC_, i got the same problem trying to use -o
17:17:01fowl-you should bug report
17:17:08fowl-i didnt, because i was sure i was crazy
17:21:01EXetoC_yes..
17:21:18EXetoC_will see if I can reduce it though
17:24:24EXetoC_shouldn't be too hard because nake isn't very big
17:28:00fowl-i dont think its in nake, it only comes up if you add -o:something to a shell("nimrod ...") call
17:43:06fowl-its weird for sure
17:43:08*fowl- is now known as fowl
17:45:38*EXetoC_ is now known as EXetoC
17:45:55EXetoCyes but nake is triggering it
17:46:31AraqI can trigger it too
17:46:54AraqI added some 'assert's. now it's gone. Looks like a corruption. :-/
17:47:26Araqthese are always the most fun
17:48:15Araqbut even then -o ain't working properly
17:51:53Araqoh no .. I'm wrong
17:53:58*Sergio965 quit (Ping timeout: 276 seconds)
17:54:34Araqlol
17:54:44Araqit's easy to fix :P
17:55:00fowlwhat is it
17:55:26Araq if options.outFile.len > 0:
17:55:27Araq exefile = options.outFile
17:55:29Araq elif optGenDynLib in gGlobalOptions:
17:55:31Araq exefile = platform.os[targetOS].dllFrmt % splitFile(projectFile).name
17:55:32Araq buildDll = cc[c].buildDll
17:55:34Araq else:
17:55:35Araq exefile = splitFile(projectFile).name & platform.os[targetOS].exeExt
17:55:37Araq buildDll = ""
17:55:38Araqso if outFile is given buildDll is never set
17:55:51Araqand the link command building crashes
17:56:11fowlbut when i got the error, i tried running the same command from bash and it worked fine but failed from nake
17:56:54Araqwell nimrod doesn't always run this
17:57:02Araqyou have to use -f to enforce rebuilding
17:57:12Araqthat's what puzzled me too
17:57:29Araqnimrod crashes but thinks the .exe has been built properly
17:57:37Araqso it doesn't rerun the linking command
17:58:14*shafire joined #nimrod
17:59:33EXetoCoic
17:59:51shafirehi!
18:05:09Araqhi shafire
18:05:41fowlAraq, i still dont see why it worked from bash and not from nimrod
18:06:08Araqfowl: it didn't work, I'm sure
18:06:16Araqyou got no error message, however
18:06:30AraqI'm sure it didn't produce an executable
18:11:09nihathraelis there something similar to items(TStrTable) that does not return an iterator but instead an [open]array?
18:11:45Araqsequtils.toSeq transforms an interator to a seq
18:12:21Araqand a seq can be passed to an openarray
18:14:48Araqso ... we managed to stay on the frontpage of reddit the whole day ...
18:15:20nihathraelAraq: thanks!
18:19:54*DAddYE quit (Remote host closed the connection)
18:22:16*DAddYE joined #nimrod
18:26:03NimBotAraq/Nimrod master 4aee21e Araq [+0 ±1 -0]: bugfix: -o option doesn't crash the compiler anymore
18:26:03NimBotAraq/Nimrod master dd0a0d4 Araq [+0 ±2 -0]: fixes #501
18:26:30nihathraelAraq: can you take a look at this small change I made to the suggest output, i'm quite unsure if this is the most elegant solution https://github.com/nihathrael/Nimrod/commit/df5091399a23700689efd50158003f2f84709e6f
18:28:08Araqnihathrael: looks excellent to me; however don't put every "import" on a separate line
18:28:46Araqalso the alphabetical order doesn't make much sense, does it?
18:28:58Araqinstead it should order by "genericness"
18:29:16nihathraelactually it should sort by usefulness, but that is pretty darn hard to tell on compiler level
18:29:53nihathraelas someone who is not familiar with an api, it find it a lot easier to read through the suggestions in alphabetical order, especially because that will put similar functions next to each other
18:30:01nihathraelI find*
18:30:22nihathraelquite frankly that might be because every other autocompleter I use does it that way
18:30:56Araqwell it surely is better than the random order we had before
18:31:23nihathraelif you want to see autocompletion done right, check out http://marketplace.eclipse.org/content/codetrails-crowd-recommendation-tools-eclipse#.UdHK8BpZ8RD for java
18:31:44nihathraelpretty cool project
18:33:09dom96hello
18:33:20dom96nihathrael: Thank you, again :)
18:34:21Araqnihathrael: nice idea. very nice. should be easy to implement for Aporia
18:34:52nihathraelAraq: fixed the import and opened a PR
18:35:35dom96argh, people should be talking about Nimrod in the nimkernel reddit thread!
18:35:52nihathraeli'm thinking of implementing subword matching for Aporia, basically means that it wont use startsWith(), but more like contains() to check for valid items
18:36:05nihathraelsoo if you type foo.bar, you will also get a suggestion for foo.getBar()
18:36:24dom96if you do that please make it configurable
18:36:39nihathraelin the crowd recommender they even made it a regex, so that is pretty powerful, not sure if that is needed though
18:37:02nihathraeldom96: yea
18:37:26dom96why did no one link sergio to nimkernel!?
18:38:25AraqI didn't remember sergio being interested in kernels, dom96
18:39:52dom96Wasn't he the one who said that he was searching for a language to do os dev in?
18:41:04Araqdunno
18:41:19dom96i'm certain it was
18:41:34Araqthen don't ask ;-)
18:43:44dom96but asking is polite :P
18:44:04Araqnihathrael: you did test your patch, right?
18:45:00nihathraelthat depends on what test means, compile yes, try it on some samples yes. Are there test cases I should be running?
18:45:39Araqwell we have tests for idetools but the auto tester doesn't run them yet either, so it's fine
18:47:17NimBotAraq/Nimrod master f6007ee Thomas Kinnen [+0 ±1 -0]: Order suggestion output by scope and then by item name.
18:47:17NimBotAraq/Nimrod master ae72134 Araq [+0 ±1 -0]: Merge pull request #502 from nihathrael/master... 2 more lines
18:48:11nihathraelnice :)
18:48:16nihathraelhow can I run the tests?
18:49:33Araqdunno ask Gradha when he's around
18:59:00*Sergio965 joined #nimrod
18:59:26dom96hey Sergio965
18:59:33Sergio965Hey!
18:59:40dom96Sergio965: Saw nimkernel?
18:59:49dom96https://github.com/dom96/nimkernel
19:00:38Sergio965Neat.
19:00:45Sergio965I got a little kernel running a while ago as well.
19:00:53Sergio965Alas, without error handling.
19:01:14dom96in Nimrod?
19:01:18Sergio965Indeed.
19:02:08dom96Put it on github too. Two little OS' is better than one! :P
19:03:28Sergio965I have it on Github now, but in a private repo.
19:03:47dom96ahh.
19:04:16Sergio965Error handling is done by simply overriding panic?
19:04:22dom96So what are your impressions then? Will you write a full OS in Nimrod? :)
19:04:36Sergio965I will write a full OS in one of D, Rust, or Nimrod.
19:04:43dom96it is now.
19:04:45Sergio965Still evaluating the strengths of the languages.
19:04:46dom96Although there is more to it.
19:04:53Sergio965Currently writing a VM subsystem in each.
19:04:56dom96Real exceptions require dynamic memory allocation.
19:05:22Sergio965Well, right now, I'm upgrading my bootloader so that it's able to pass a valid Multiboot memory map to my kernels.
19:05:29dom96Sergio965: Do you have a blog by any chance where you could share your findings? I would love to read that, especially if Nimrod wins ;)
19:05:43Sergio965Hmm, well, it's part of my research.
19:06:00Sergio965So I'll write a few papers about it soon.
19:06:14Sergio965Thus far, I've only written my thesis proposal. At that point, I hadn't considered Nimrod.
19:06:48Sergio965My approach to getting Nimrod to work on Baremetal was quite different from yours, actually.
19:07:20Sergio965Did you rewrite system.nim?
19:08:19dom96Sergio965: Araq recently fixed --os:standalone so that the C stdlib is not used anymore.
19:08:27Sergio965Oh.
19:08:38dom96Initially I edited the system.nim until it worked.
19:08:47dom96But it was pretty ugly.
19:08:55Sergio965What I did was write my own system.c.
19:08:56dom96Not to mention it would break easily etc.
19:09:09Araqdom96: exception handling doesn't require 'ref' in principle
19:09:10dom96So I told Araq to fix --os:standalone :P
19:09:30Sergio965So I would compile it normally but link with my system.c.
19:09:31AraqSergio965: writing C code is never required for Nimrod
19:09:54Sergio965Araq: Right, but --os:standalone wasn't working.
19:10:09Sergio965So either I rewrote system.nim with would just become system.c or just wrote systemc.
19:10:10Sergio965system.c*
19:12:46Araqfair enough I guess
19:14:04AraqSergio965: do you include the GC in your kernel?
19:14:37Sergio965I do not.
19:15:22AraqI think I can get it to work in a kernel but then I'm not sure it really helps anything
19:15:36Sergio965It shouldn't be too big of a problem.
19:15:46Sergio965I just don't have a VM subsystem yet, so GC is pretty much pointless.
19:15:58Sergio965Once I get that going and and can actually allocate/deallocate memory, I'll turn on GC.
19:16:05Araqnice
19:16:16Araq--os:standalone is the wrong option then ;-)
19:16:47Sergio965That turns of GC as well?
19:16:49Sergio965off*
19:17:09Araqyeah and alloc/dealloc
19:17:45Araqand pretty much everything else; --os:standalone is also for embedded targets with 16K of RAM
19:18:57Sergio965I see.
19:20:07Sergio965What would it do if I tried to allocate an object?
19:20:21AraqError: system module needs newObj
19:20:28Araqor something similar
19:21:01Sergio965Is there a way to allocate an object on the stack?
19:21:20Araqsure nimrod's objects are value types
19:21:38Araqin fact only ref/seq/string do allocate on the GC'ed heap
19:22:04Araqand of these only 'ref' has to the semantics allow C++-like strings/seqs
19:22:21Araqand of these only 'ref' has to; the semantics allow C++-like strings/seqs
19:23:40Sergio965All objects are allocated on the stack?
19:23:52Sergio965Or does it depend on the object's properties?
19:24:13Araqall objects.
19:25:02Araqa Nimrod object is pretty much a C struct
19:25:15Sergio965What if I need it on the heap?
19:25:26Araqthen you use 'ref object'
19:25:32Sergio965Oh I see.
19:29:29Araqbtw once you got a memory subsystem the default system.nim should be fine; just make sure alloc.nim uses your mmap implementation
19:30:20Sergio965What libc memory functions do you use?
19:30:33Sergio965I assume malloc/free/mmap?
19:30:45Araqonly mmap
19:31:06Sergio965What about memcmp/memcpy?
19:31:31Araqthese too but they are often cpu specific builtins, not OS specific
19:31:47Araqin other words, GCC knows how to generate code for them
19:32:44Araqoh and C's FILE*, signals and exit()
19:33:03Sergio965Yeah, that's gonna take a while. :P
19:33:17Sergio965The signals part, really.
19:33:18Araqwell you can disable the FILE* stuff and signals
19:33:24*zahary joined #nimrod
19:33:34Sergio965You spawn processes?
19:33:38Araqthe signals shouldn't be used anymore when you use -d:noSignalHandler
19:34:00Araqsignals really are unimportant
19:34:12Araqand no, system doesn't spawn
19:34:21Sergio965What do you exit?
19:34:33Araqfor fatal errors
19:34:45Araqdom96's error handler doesn't do that ;-)
19:35:00Araqbut that seems ... risky
19:35:15Sergio965So an exit would be a kernel panic?
19:35:31Sergio965IE, they're completely unrecoverable?
19:38:42Araqthat's fine yes
19:39:13Araqit's only used to tell you "array index out of bounds" etc.
19:41:13fowli should work on something today
19:41:19fowlncurses.nim maybe
19:44:05Sergio965fowl: You should write a tutorial on how to use the type system effectively.
19:44:37Sergio965I could use that
19:44:41Araqand the effect system ...
19:44:48Sergio965And the effect system which I know nothing of.
19:45:14Sergio965Araq: Is there a way to declare data invariants?
19:45:29Sergio965(And have them be automatically checked/verified)
19:45:50AraqSergio965: no for now there is only 'assert'
19:46:15Araqand perhaps 'requiresInit' for types counts as well
19:46:36fowlSergio965, anything specifically trouble you about it? (the type system)
19:46:42Araqand the 'not nil' annotation
19:47:32*zahary quit (Quit: Leaving.)
19:49:16Sergio965fowl: I'd simply like a concise, example-driven tutorial on how to enforce safety using Nimrod's type system.
19:50:11Sergio965Araq: Why not use the @ syntax to make a non-ref object a ref-object on the fly instead of having to define a new type for it?
19:50:31fowlSergio965, whats that mean, enforce safety
19:50:34AraqSergio965: don't use 'cast' and 'ptr'. Then you have safety. That's pretty much it ;-)
19:51:09AraqSergio965: you can do type x = ref object already
19:51:29fowltype x = ref object
19:51:31fowl y: int
19:51:32Sergio965Araq: But I don't have any data guarantees. What if I messed up my logic in an extremely subtle way? IE, if I have a database represented as two sequences that should always be the same length, it'd be nice if Nimrod could catch that.
19:51:39fowlvar my_x = x(y: 42) # new ref
19:51:53Sergio965fowl: Right, right, I've seen that.
19:52:25AraqSergio965: it'd be nice but Nimrod is no theorem prover
19:53:00Sergio965Araq: But I mean when declaring/creating the object. IE, if I have type TNode = object value: int, it'd be nice if I could do var node = @TNode(value: 2).
19:53:13fowlSergio965, tbh id rather keep that logic in my own domain, the compiler does enough as it is
19:53:20Araqyou can use macros to attach 'asserts' to proc bodies ... that count's as pre/postconditions in my book ;-)
19:53:35AraqSergio965: that never happens for me
19:53:52Sergio965Araq: It doesn't have to be complicated. All you need is a bit of quantification syntax.
19:54:06fowlSergio965, proc `&`* [T] (some: T): ref T =
19:54:10fowl new result
19:54:13fowl result[] = some
19:54:53fowli wouldnt use @ so you can have a ref seq if you want (@ @[1,2,3] would look weird)
19:55:20AraqSergio965: it can easily be done as fowl showed but it happens rarely here so it's not builtin
19:56:19Araqnote there is also 'var' to gain write access for a type
20:04:29Sergio965Are there dictionaries/maps/associate arrays in Nimrod?
20:04:43Sergio965(dynamic ones)
20:04:55fowlSergio965, see the tables module
20:05:48fowlAraq, chtype acs_map[]; would be var acs_map: ptr array[some num, chtype] right
20:06:11Araqfowl: right
20:06:50fowlwhats the point of c having [] and pointers if pointers can be accessed with [index]
20:07:24Araq[] is mostly sugar, fowl
20:08:13Sergio965Arrays and Pointers are different types in C.
20:08:46Sergio965For example, you cannot do: char s[12]; s += 2.
20:09:01Sergio965But you can do: char *s; s += 2.
20:09:24Araqyou can also do: char s[]; s += 2;
20:09:33fowlbut unsized array is always a pointer to the first item
20:09:36Araq(I think ...)
20:10:11Sergio965I don't think you can do that.
20:10:23Sergio965You need to give a string after.
20:10:34Sergio965Yeah.
20:10:50Sergio965char s[] = "Hello"; Will automatically give you a char[6] type.
20:10:57Sergio965And you can do + on array types.
20:11:07Sergio965fowl: Yeah, but not really.
20:11:35Sergio965And you can't*
20:11:46Sergio965fowl: Any array is always a pointer to the first element.
20:12:18Araq*shrug* C's creator admitted its array/pointer stuff is poorly designed
20:12:40Sergio965fowl: But it's type has a size (which most of the time doesn't matter). So if you have char s[100] = "Hi"; printf("%z", sizeof s);, You'll get 100.
20:13:05Araqcuriously it's also one of the few truly unique things about C
20:13:27Sergio965%zu*
20:14:09fowlif i do `echo "BLAH ", cuchar.high` it doesnt print out
20:14:28fowlor cchar
20:14:36fowlcshort, clong, cint do though
20:15:14Sergio965Isn't that the null terminator?
20:15:49Araqcuchar is just an alias for 'char' then I guess and high(char) is y umlaut or something
20:16:40fowli dont even see the BLAH though
20:27:36fowli get error: constant expression expected for this : template NCURSES_ACS(c:char): expr = acs_map[c.int]
20:29:10Araqdo you use that template in a 'const' section?
20:29:42fowlyea
20:30:02Araqwhat's surprising then?
20:30:24Araqacs_map is essentially unkown to the compiler
20:30:46fowlit doesnt mention the const line, usually would say instantiation from here
20:30:52Araqtrue
20:31:06fowli see, those consts should be templates
20:31:22Araqbug report about the missing "instantiation from here" please
20:31:37Araqfowl: yep
20:40:30fowlhttp://lambda-the-ultimate.org/node/4768
20:40:36fowlmissing nimrod
20:42:09nihathraeldom96: around? I have a fix for #34. Is there anything wrong with the current PR? otherwise it'd be great if you could merge that, then I can open a new one for #34
20:42:55dom96nihathrael: Sorry, was busy. I'll review at your PR now.
20:43:00dom96s/at//
20:43:56nihathraelsure no worries, I should have created a new branch for every fix anyway, then I can easily open multiple PRs
20:44:03fowldom96, if you want to make the nimkernel easier to try, the nake license permits distributing it with the kernel
20:44:14fowl(do as thou wilst)
20:44:54Araqfowl: nope look again
20:44:55*Endy quit (Ping timeout: 264 seconds)
20:45:11dom96I'd rather if the users get the latest nake, don't want to have to keep updating it in the repo.
20:45:18fowli might change it to the "Do What Ya Do, But Watch My Shoes" license which will be similar, but require special attention be paid to my shoes.
20:45:30fowldom96, its not likely to be updated for a long time
20:48:33dom96fowl: meh, I'd rather just leave it the way it is
20:51:29fowlhttp://www.youtube.com/watch?v=b32f5qMeOTk
20:57:36NimBotnimrod-code/Aporia master b3b88c2 Thomas Kinnen [+0 ±2 -0]: Enhance suggest output and fix a small typo.... 4 more lines
20:57:36NimBotnimrod-code/Aporia master a04e5ce Thomas Kinnen [+0 ±1 -0]: Correctly filter suggestions on ctrl+space activation.... 4 more lines
20:57:36NimBotnimrod-code/Aporia master 283b34f Thomas Kinnen [+0 ±1 -0]: Use case..of syntax instead of lengthy if else
20:57:36NimBotnimrod-code/Aporia master 0e281fb Thomas Kinnen [+0 ±1 -0]: Fixes #34 - Add close current tab and close all tabs file menu entries
20:57:36NimBot2 more commits.
20:58:19dom96nihathrael: I moved where the Close/CloseAll buttons are.
20:58:25dom96Other than that, nice job.
20:58:27nihathraelinteresting, how did that commit end up in there automatically
20:58:34nihathraelis that because they were on the same branch?
20:58:57fowlwhen you push to the same branch as a PR it updates the PR
20:59:01nihathraelah ok
20:59:46nihathraeldom96: yea that position is a good idea
21:00:15fowlis suggest usable now?
21:00:37dom96It's still too slow i think :P
21:00:44dom96need to implement caas
21:00:44nihathraelthat depends on your notion of usable, but the output is a lot more useful now
21:00:54nihathraelyea it is a little slow
21:01:03nihathraelalso I'd love to have suggest working on variable names
21:01:09nihathraelnot only function calls
21:01:21fowldom96, aporia should be on babel
21:01:37dom96yeah I will add it later
21:03:05nihathraelnot sure whether suggest not working on variable names is a limitation of aporia or nimrod suggest currently
21:03:32dom96what do you mean?
21:03:59nihathraelif I have var fooBar = 1 and then type " foo<CTRL+Space>, I want it to autocomplete it to fooBar
21:05:13dom96if it gives you no suggestions then it's a bug with nimrod's suggest
21:05:40dom96Perhaps aporia should just scan the doc for 'var\s.*' etc
21:06:07dom96Show that information first, and call the compiler for more detailed info.
21:06:10nihathraelit would be a lot better if scoping was used properly
21:06:15dom96It would also be nice to get some icons into suggest
21:06:24nihathraeltrue
21:06:28dom96So that it's easier to see what is a proc, what is a type etc.
21:06:55nihathraelyea I tried to emphasize that a little using bold italic etc, but icons would help a lot
21:07:19nihathraelis aporia using the gtksourceview's autocomplete window or is that a custom widget?
21:10:02dom96it's custom
21:10:29nihathraelany specific reason for that?
21:10:45*shafire quit (Quit: Page closed)
21:11:03nihathraelI remember the gtksourcecompletion being able to do the filtering very fast for example
21:11:23nihathraelalso has built in functionality for icons
21:12:09dom96I think when I wrote it I just wasn't aware of the ability of gtksourceview to do that.
21:12:27dom96I don't see how gtksourcecompletion can do filtering faster though
21:12:41dom96A custom suggest widget also gives us greater control.
21:12:59nihathraelI don't know if it is faster, I just remember it being a lot faster than a custom widget I saw on a latex editor
21:13:51nihathraeltrue, using the given widget might save us a ton of code though
21:14:38dom96You are welcome to try it, but I worked hard on getting my custom one to work and i'm not sure I will like the gtksourceview one so I may not merge your changes.
21:15:12nihathraelYea i'm not sure about doing the move yet. Can't see any big benefits out of the box right now
21:15:32nihathraeli'd much rather try creating an outline view of the current file
21:15:44nihathraelnot sure how easy that is
21:15:56dom96yeah there are always more important things to do
21:18:49dom96I will be working for the next month so I won't have much time.
21:19:42nihathraelYea I should be working on my master's thesis as well, but I might have some time here and there
21:19:49dom96EXetoC: dude, if you rename your package you need to rename your .babel file and the package name in the .babel file.
21:20:58nihathraeldom96: another thing I was wondering, why is it necessary to copy all files into a tmp directory before running the suggest feature?
21:21:50dom96Because you feed the compiler filenames, and saving unsaved files without the users permission is a bad idea IMO.
21:23:09nihathraelright, good point
21:23:10Araqactually that's not necessary for the caas mode
21:23:34nihathraelis that CAAS already implemented in the compiler?
21:24:50Araqyes but it's as buggy (if not moreso) as the rest of idetools
21:25:08Araqhowever without aporia support I can't test and improve it :P
21:25:24*Sergio965 quit (Ping timeout: 256 seconds)
21:26:21EXetoCdom96: :/
21:26:24nihathraelis there any documentation on how to use it?
21:27:59Araqnihathrael: http://build.nimrod-code.org/docs/idetools.html
21:28:12EXetoCdom96: even the file name? ok
21:28:18dom96EXetoC: yes
21:28:43dom96Although I think it's optional.
21:28:48dom96But it's good to be consistent :P
21:29:00EXetoCyep
21:32:34*Associat0r joined #nimrod
21:32:34*Associat0r quit (Changing host)
21:32:34*Associat0r joined #nimrod
21:36:08nihathraelAraq: thanks, i'll have a look at it
21:45:06Araqugh, sourceforge downloads are annoying
21:45:49fowlsourceforge is outdated lol
21:45:56Araqindeed
21:46:04fowli remember trying to get a project on there many years ago
21:46:21Araqseriously ... how can I download Bochs' source code?
21:46:25fowlthey required so much information, i gave up and put it on google code
21:46:33nihathraelthe only reason for sourceforge to exist is because they still allow download hosting
21:46:34fowlSVN?
21:48:13Araqfowl: then tell me the svn command
21:48:20Araqthese links all don't work
21:48:55fowlAraq, svn co https://url
21:49:16Araqwell I don't know the url
21:49:19fowlhttp://sourceforge.net/p/bochs/code/11733/tarball
21:49:28fowlsvn checkout svn://svn.code.sf.net/p/bochs/code/trunk bochs-code
21:49:56fowlAraq, im under the "Code" tab
21:50:46Araqfowl: thanks, worked
21:52:43fowlAraq, in return please make a babel package for nimgrep
21:52:53fowl(:
21:53:01fowli have these symlinks in ~/bin i want to get rid of
21:55:46Araqfowl: meh ... I dislike babel files :P
21:55:59Araqbecause they are not compatible yet to niminst files
21:56:03fowli think ill write a macro to turn this const section into a bunch of templates
21:56:20fowlbecause inserting template and :expr is annoying
21:56:39fowlAraq, just copy the one in the readme, thats what i do
21:57:20Araqfowl: there are also regex based search&replace in aporia for these things
21:58:03fowli didnt know it used regex
22:05:03*OrionPK joined #nimrod
22:07:04fowljesus ncurses.nim is annoying
22:12:54BitPuffinsuppose I should read the manual
22:13:16BitPuffinwhy not add a termbox wrapper for nimrod?
22:14:09BitPuffinthat way you wouldn't have to deal with ncurses fowl
22:14:32fowlyou know i had one that i never published for some reason
22:14:42fowlwell, you wouldnt know that, because i never published it
22:14:48fowlthats a good idea though, im going to do that instead
22:16:42BitPuffinglad you enjoyed the advice
22:20:57BitPuffinwhat the heck is terminal symbols :3
22:52:27dom96'night
22:57:05fowlnight dom
22:57:20fowlBitPuffin, wrapper finished in 20 minutes
22:57:38fowltoo bad i cant make $ off this =(
22:57:38BitPuffinnight dom96!
22:57:49BitPuffinfowl: cool! be sure to put it in babel
23:11:20fowlgrumble
23:11:28fowli was going to throw it in fowltek
23:31:56*EXetoC quit (Quit: WeeChat 0.4.1)
23:42:25fowlhttps://code.google.com/p/termbox/wiki/Rationale
23:55:58*q66 quit (Quit: Leaving)