<<22-04-2013>>

00:29:59*fowl joined #nimrod
00:37:17*fowl_ joined #nimrod
00:39:01*fowl quit (Ping timeout: 248 seconds)
00:58:10*fowl_ quit (Ping timeout: 272 seconds)
00:59:43*algoban quit (Quit: Leaving.)
01:21:31*fowl joined #nimrod
04:17:56*OrionPK quit (Read error: Connection reset by peer)
05:53:36*fowl quit (Read error: Connection reset by peer)
05:56:52*fowl joined #nimrod
06:05:20*fowl quit (Ping timeout: 272 seconds)
06:27:49*fowl joined #nimrod
07:56:09*xcombelle joined #nimrod
08:03:53*benedek joined #nimrod
08:05:03benedekHello
08:05:39benedekI just noticed that strutils's "formatBiggestFloat" implementation uses a fixed buffer size which it calls "c_sprintf" on.
08:06:15benedekIf you give a too large "precision" parameter, it's not checked and the program can crash.
08:09:09benedekAs far as I know it's a better practice to have a dynamic buffer, but at least "snprintf" could be used (although I'm not sure if every platform has that).
08:18:16benedekShould I put up an issue on GitHub?
08:35:27fowlbenedek: yea if you have an example that it will break on
08:37:21benedekOkeydokey
08:46:18benedekDone.
09:51:54*benedek quit (Quit: Leaving)
10:01:50*algoban joined #nimrod
12:17:06*xcombelle quit (Remote host closed the connection)
13:40:42*fowl quit (Ping timeout: 272 seconds)
14:08:09*q66 joined #nimrod
14:13:56NimBotAraq/Nimrod 94a131d Araq [+0 ±5 -0]: first steps to the new parser/grammar
14:13:56NimBotAraq/Nimrod 637bed9 Araq [+0 ±6 -0]: next steps for the new parser/grammar
14:13:56NimBotAraq/Nimrod 8f76108 Araq [+0 ±2 -0]: next steps for the new parser
14:13:56NimBotAraq/Nimrod d999171 Araq [+0 ±4 -0]: new parser works
14:13:56NimBotAraq/Nimrod c47b84f Araq [+0 ±4 -0]: new parsing scheme is documented
14:47:05reactormonkAraq, what's the advantage of the new parser?
14:48:32*xcombelle joined #nimrod
15:08:58Araqreactormonk: the new parser uses a slightly easier way to deal with indentation, has different bugs than the old one ;-) but provides more flexibility for further growth
15:09:23Araqfor instance:
15:09:26Araqproc p()
15:09:31Araq {.pragmas here.}
15:09:36Araqis now supported
15:10:10Araqalso the grammar is now embedded in comments and extracted into grammar.txt
15:10:18Araqso that it's way easier to keep up to date
15:10:58dom96hello
15:11:58Araqhi dom96
15:12:07Araqnimbuild couldn't checkout the branch ...
15:12:33dom96:\
15:14:52dom96oh cool
15:14:59dom96But it added it to the database all ok it seems
15:19:50dom96I see the problem.
15:20:29Araqeasy to fix?
15:20:33dom96yeah
15:21:35Araqgood please do so, I wonder how many tests the new parser breaks :P
15:22:12AraqI did check most of the stdlib though
15:24:28NimBotnimrod-code/nimbuild 9289111 Dominik Picheta [+0 ±1 -0]: Builder: ``git pull`` should be performed before changing branch.
15:34:54NimBotnimrod-code/nimbuild 5e5f137 Dominik Picheta [+0 ±1 -0]: Builder: Must restore to a branch, otherwise git pull fails.
15:44:43dom96There we go, all fixed.
15:44:55Araqexcellent, thanks
15:53:13reactormonkContributors are like developers yet play an ancillary role in a project's lifecycle. Perhaps the contributor sent in a bug fix, or added some important documentation. A healthy open source project will likely have more contributors than developers. :-)
16:02:47*benedek joined #nimrod
16:13:46*benedek quit (Read error: Connection timed out)
16:14:09*benedek joined #nimrod
16:17:19Araqhi benedek
16:18:40benedekHi Araq, I saw your comment to the recent issue :)
16:24:39*XAMPP quit (Ping timeout: 260 seconds)
16:37:00reactormonkAraq, maybe add in which commit it has changed.
16:37:45Araqwell I don't know, I'm too lazy to look it up
16:38:11Araqgit's hashes really are suboptimal for human beings :P
16:38:28reactormonkit's better to know where to test.
16:43:40Araqfyi: http://forum.dlang.org/thread/[email protected]#post-iaswdyjqbxyxvtlqljeq:40forum.dlang.org
16:44:26dom96whoa deja vu
16:45:11*benedek quit (Quit: Got to go)
16:45:22dom96oh but someone mentioned Nimrod.
16:56:29dom96Araq: I like your answer
16:59:42Araqyay thanks
17:06:11*Madison joined #nimrod
17:06:11*Madison quit (Changing host)
17:06:11*Madison joined #nimrod
17:06:38Araqwelcome algoban, Reiser
17:07:01ReiserAraq: It's been a while, thanks
17:08:36reactormonksomehow no one uses emacs here :-/
17:08:48*Madi joined #nimrod
17:09:06Araqemacs is a great OS, but a shitty editor, they say, reactormonk ;-)
17:09:17reactormonkAraq, that's why I use evil
17:09:40reactormonkhttp://developers.slashdot.org/story/13/02/16/0251239/evil-almost-full-vim-implementation-in-emacs-reaches-10
17:10:34ReiserThat is insane
17:11:09Araqreactormonk: I hope you're kidding
17:11:17reactormonkAraq, hell no
17:11:30reactormonknow I have org-mode and vim keybindings.
17:11:35ReiserDoes it support vimscript? The plugin ports suggest it doesn't
17:11:52reactormonkReiser, no? it's elisp all through. It's only the keybindings.
17:12:08ReiserSham
17:12:09Reisere
17:12:35reactormonkfor vimscript emulator, you'd have to reimplement all of vim on top of emacs
17:12:38*Madison quit (Ping timeout: 255 seconds)
17:12:48ReiserThat's what I was hoping for rofl
17:13:29reactormonkwhy?
17:13:45reactormonkif you prefer python, you could also try sublime ;-)
17:14:09ReiserBecause if I could just drop my .vim/ onto emacs, and have exactly what I have now, but with everything emacs has, then I could justify trying to learn to use emacs
17:14:24reactormonkask in #emacs for equivalent libraries
17:14:34ReiserExactly, I don't want to have to do that
17:14:37ReiserI'm comfortable in vim
17:15:52ReiserI just happened to learn vim first, don't have the energy to do it again
17:16:05*Madi is now known as Madison
17:16:26*Madison quit (Changing host)
17:16:27*Madison joined #nimrod
17:21:06dom96I don't have the energy to learn vim or emacs which is why I'm creating my own text editor :P
17:23:18reactormonkReiser, org-mode is worth it
17:24:22Reiserreactormonk: There's a vim plugin for it it seems
17:24:56*reactormonk quit (Read error: Operation timed out)
17:26:21apotheonI spent a little time learning to use emacs, and the end result was that I could do some of the stuff I do in vi, and could probably (with a lot more learning) do *all* the stuff I do in vi, but all if it was harder.
17:26:41apotheon. . . so I gave up on emacs and promptly forgot pretty much everything I had learned.
17:27:24Araqmy fear is VIM would make me unlearn all the shortcuts that work everywhere else ;-)
17:27:31ReiserRofl, I did try reading about how modes worked in emacs and even that seemed overly complex to me
17:28:07ReiserAraq: I can understand that, I already use vi anywhere I have an option, zsh etc
17:28:17ReiserSo that I don't have to make the mental context switch all the time
17:31:05apotheonAraq: I just make sure "everywhere else" uses the same shortcuts.
17:31:22Araqplus I don't believe an editor created for some weird archaic baud limitations can be convenient to use :P
17:31:49apotheonBasically all shells have a vi editing mode; both Xombrero and Firefox+Pentadactyl provide excellent vi-like interface experiences for web browsing; et cetera.
17:31:49ReiserAraq: You'd be amazed
17:32:07ReiserThe only time I've ever found it inconvenient
17:32:22ReiserIs when I used another system with vim compiled with stupid flags, and something I'm used to existing is now gone
17:33:05ReiserWhich is basically how I feel with every other editor I use that's not vim now
17:34:32dom96I believe that advanced text editing features should be implemented alongside traditional controls.
17:34:46dom96The only thing that emacs/vim manages to do for me is to irritate me.
17:35:41Araqmaking me press ESC is not user friendly
17:35:45dom96I like to learn in small steps, not change my habits completely. Which is what those editors require.
17:36:37*reactormonk joined #nimrod
17:36:39ReiserEsc is annoying, but the benefits that come from it are worth it
17:36:52ReiserThere's nothing stopping you from adding 3 or 4 lines to .vim to have it stay in insert mode and behave like any other editor
17:37:13ReiserBut then there's not much point, and I guess anyone who does that is going to be annoyed that vim doesn't do that by default
17:37:28Araq*shrug* typing is not a bottleneck for me anyway
17:37:49dom96Even in its raw form, vim behaves very differently to modern text editors.
17:37:57apotheonAraq: Using vi-like editors for maximum value involves reorienting how you think about editing. It's not that you have to press ESC to do some stuff, and the rest of the time it's a "normal" text editor: it's actually a highly advanced text processing system that allows you to enter a text-entry mode until you hit ESC.
17:38:07dom96One of the things I found annoying is that the cursor will not be saved where you left it.
17:38:11dom96It will move as you scroll.
17:38:27Araqyeah
17:38:31ReiserI don't think vim really fixes typing bottlenecks, It's movement and large text changes that you want from it
17:38:37ReiserAlso I'm not sure what you mean by the cursor movement?
17:38:51Araqthat's deadly for those of us who use the cursor as a reminder where to go back to
17:39:08dom96exactly.
17:39:15apotheonReiser: Maybe he's talking about the cursor going to the beginning of the line when using Ctrl-D or something like that.
17:39:24ReiserYeah if you're using a cursor you don't want to be using vim, at all
17:39:39dom96What i'm talking about if the cursor always staying in your viewport.
17:39:42dom96*is
17:40:00ReiserAh I see, as in, you might scroll down a ton, but hitting a will jump back up and type where you left it
17:40:03apotheonOh, that.
17:40:09Reisera key*
17:40:11apotheonWeird.
17:40:32ReiserYeah I can see why you would want that, I wouldn't mind having that behaviour somehow
17:40:37apotheondom96: There are ways to see a different part of the document than where you have your cursor, without scrolling the buffer with the cursor in it.
17:40:38ReiserI use marks to get what you're talking about
17:40:50apotheonMarks work, too.
17:40:59ReiserBut It's definitely not the nicest solution to have to hit `. every time you want to go back to where you left your editing cursor
17:41:14dom96Yeah. I know. But that requires a change of habit.
17:41:18ReiserYeah it does
17:41:27apotheonReiser: Why isn't that a good solution?
17:41:55Reiserapotheon: well the whole selling point of vim is do more with less keys, this is one of those cases where you need more keys to do something
17:42:10ReiserEvery other editor you just type, vim needs you to jump back to your mark
17:42:11apotheonReiser: Otherwise you have to use a mouse, which is much worse than just hitting two keys.
17:42:19apotheonerr, one key
17:42:31Reiserapotheon: It's worse than that, It's not about the mouse
17:42:31apotheonOh, I see.
17:42:38apotheonThe typing-jump-thing.
17:42:39ReiserIf you are typing say, in the () on line 45
17:42:45ReiserAnd you scroll down 200 liens to check something
17:42:58ReiserAnd you want to be able to just start typing and have the editor immediately writing where you left your cursor
17:43:03apotheonFor that, use buffer tricks so you can see both at the same time.
17:43:03ReiserThat's not an easy motion in vim
17:43:10ReiserBut happens automatically in pretty much any other editor
17:44:39apotheonI'd rather hit a key to get back than have to use the mouse to scroll down in the first place. Context-switching is murder on flow.
17:51:23AraqESC is almost a context switch too IME
17:52:23apotheonAre we playing horseshoes?
17:52:45apotheonIt's only a context-switch if you're using vi primarily as an editor, and only reluctantly as a text-processing system.
17:53:28Araq*shrug* I use scripts for text processing ...
17:57:12apotheonThat's appropriate for robotically repeated tasks.
17:58:11apotheonMore specifically, vi-like editors offer guided text processing capabilities with an efficient interface, as opposed to predefined fire-and-forget text processing task automation bundles.
17:59:42Araqwhat would that be? I can only think of search&replace with confirmation ;-)
18:02:30apotheonWhat would what be?
18:03:03apotheonGuided text processing? Efficient interface? Task automation bundles? What, exactly?
18:03:18Araqwhat's a "guided text processing capability"? please give an example
18:03:46ReiserAraq: most used shortcuts for me are text selection, two keys to delete an entire block of code, another two to move to the function definition and be adding a new argument, three of four keys to insert a string at the beginning of every element in an array
18:03:53ReiserThose kinds of things are what keep me around at least
18:04:09apotheontext processing where you decide in the moment exactly what you want it to do while still being able to rely on automation to abstract away the tedious details of accomplishing the task
18:04:30apotheone.g. combining two lines of text
18:04:34apotheon. . . and more complex stuff
18:06:27AraqReiser: I see; that requires the editor to understand the programming language though
18:06:41apotheonnot necessarily
18:06:44ReiserAraq: you are right, but vim comes with a folder of plugin/s that understand most languages
18:06:49ReiserFor nimrod, you would have to write one
18:06:52ReiserThat's a pain
18:06:54apotheondepends on the specific tasks
18:06:56Reiserbut only one person has to
18:07:10AraqReiser: there is a vim plugin for nimrod maintained by a core dev
18:07:18ReiserAraq: then what's the complaint? ;p
18:07:36ReiserThere's also a ton of selections that aren't language specific which are just as help ful
18:07:43apotheonTyping "/main(" doesn't require the editor to understand the programming language, for instance.
18:07:49apotheond% doesn't either
18:07:56Reiserlike 'select inside some [] brackets', and even without knowing about C, vim doesn't need to know C to understand 'select inside {}', which you could use to do the
18:07:59Reisermove about functions I mentioned above
18:08:35Araqapotheon: that's not quite correct, the 'main' could be in a string literal
18:08:49Araqof course it could be that you do want to see that occurance too
18:09:06ReiserTo be fair
18:09:07apotheonAraq: type n next
18:09:08ReiserIf you're doing /main(
18:09:15ReiserYou're probably making life way too hard on yourself
18:09:21apotheonReiser: that too
18:09:21Reiserwhen you can use ctags
18:09:23Reiserand jump straight to it
18:09:32Araqit's a "find code" vs. "find text" issue
18:09:37Reiserand ctags will definitely be looking at the main definition
18:09:41apotheonI haven't learned ctags yet, but it's on my todo list.
18:09:55apotheonI was talking about language-nonspecific ways to do things, though.
18:10:10ReiserI think
18:10:20ReiserAny editor that tries to do everything non language specific is going to fail
18:10:30apotheonno doubt
18:10:45ReiserIf your complaint is vim can't find main without knowing what language It's looking at
18:10:46AraqReiser: I'm not really complaining, just wondering what features are worthwhile to steal for Aporia
18:10:48apotheonStill . . . vi offers better coverage with language-nonspecific approaches than anything else I've seen.
18:10:57ReiserThen you're asking for some god-tier level understanding of text
18:11:17apotheonAraq: If you're not willing to "steal" modal editing, you've eliminated most of what makes vi excellent.
18:11:54Reiserapotheon: true, and the fact you can achieve 'find main' with some degree of accuracy is
18:11:59Reiserpretty proving of why It's good
18:12:00Araqapotheon: yeah but then if we steal that we may as well stop developing aporia and switch over to vi instead
18:12:16ReiserBecause you can hit gD and vim does a really
18:12:18Reiserreally good job
18:12:22Reiserof finding definitions specifically
18:12:24Reiserwithout knowing the language
18:12:37apotheonAraq: That's why I'm not developing Aporia!
18:16:48ReiserNot trying to make out like vim is the best thing ever here by the way, just that the pain of modal switching is worth it
18:16:58Reiserif you use the mode for what It's for
18:17:36apotheonI don't really notice any pain, maybe because it's far less than the pain of other editors' imposed context switching models.
18:17:46ReiserI think most people who dno't use vim regularly only ever exit to normal mode to save or open a new file, makes me wonder why
18:17:59ReiserDistro maintainers don't include a vimrc with Ctrl+W or something bound to save and input mode by default
18:18:13ReiserI don't think anyone would mind except people who actually use vim, who will have 600MB .vim/'s anyway
18:18:17apotheonHonestly, pretty much all editors -- all of them anyone would be likely to want to use, anyway -- are modal. Most just aren't explicitly modal.
18:18:41apotheonThere's text-field mode, and menu mode, and search-and-replace mode, and so on.
18:19:02apotheonIn addition to having to change the modes of use when doing these things, you also have to change the interface you use, though.
18:19:28Reiserapotheon: that's what I'm getting it, I think if vim was input mode by default, with Ctrl+* bound to reasonable things that people expect
18:19:33Reiserpeople would have a lot less problem with vim
18:19:48apotheonReiser: One of Vim's annoying problems is the fact it calls command mode "normal mode". It confuses things.
18:19:59ReiserRofl
18:20:26ReiserBeen using vim like, 3 years, and I've never had an editor discussion before, this is like the most pointless conversation ever
18:20:36ReiserBut I can see the fun
18:20:48apotheonheh
18:20:51ReiserAt least, not a serious one
18:21:50ReiserSublime's pretty nice, just to change the focus a bit
18:22:15apotheonmeh
18:26:21apotheonI'm gradually teaching my SigO to get the most out of vi-like editors. She uses Vim, but not terribly optimally at the moment.
18:27:22apotheonUnfortunately for her, she has to use some Oracle-oriented tools at work, which kinda interferes with her learning process for Vim.
18:27:58apotheonShe can get away with using SciTE at work sometimes, but it doesn't get much better than that.
18:36:57*Madison is now known as MadiKitty
18:42:51Araqhrm the old parser allowed:
18:42:56Araq newButton(onClick = proc(b: PButton) =
18:42:57Araq var requestomat = 12
18:42:59Araq )
18:43:10Araqthe new one requires:
18:43:14Araq newButton(onClick = proc(b: PButton) =
18:43:16Araq var requestomat = 12
18:43:19Araq )
18:43:35Araqany opinions?
18:44:22*MadiKitty quit (Quit: Leaving)
18:44:57dom96hrm, I think that's fine.
18:45:05Araqit breaks code though
18:45:17Araqand it seems easy to support the old style
18:45:17*fowl joined #nimrod
18:45:39Araqhey fowl, please read what I just wrote in the logs
18:45:42apotheonI prefer the second version, so I don't have much of an opinion, I guess.
18:46:20Araqwell surely the 2nd version is nicer
18:46:42apotheonSome people would disagree with that, but I'm not sure how much they should be enabled.
18:47:33Araqmeh, I'm trying to support the old way, we can deprecate it later
18:47:50Araqdeprecation warnings are much nicer than breaking code
18:47:59dom96Can you add a deprecation warning easily?
18:48:15Araqdom96: looks like it, yeah
18:48:29dom96go for it then
18:49:07*Madison joined #nimrod
18:49:07*Madison quit (Changing host)
18:49:07*Madison joined #nimrod
19:01:17reactormonkAraq, so you reworked the indentation parsing?
19:01:49Araqyeah
19:02:16AraqI also invented new operators for specifying a grammar ;-)
19:02:28AraqI figured EBNF is a pita
19:03:06reactormonkwhich parts?
19:03:26Araq1.) no higher order rules
19:03:46Araq2.) lack of useful operators like / and ^*
19:31:15apotheonAraq: I agree, by the way, about deprecation vs. breakage.
19:44:08*Madison quit (Quit: Leaving)
19:45:36*xcombelle quit (Remote host closed the connection)
20:04:44NimBotAraq/Nimrod e144b8b Simon Hafner [+0 ±1 -0]: added toSeconds and fromSeconds to times. fixes #334
20:04:44NimBotAraq/Nimrod 1e9ff02 Araq [+49 ±2 -0]: added manyloc test suite; --path now relative to project dir if not absolute
20:04:45NimBotAraq/Nimrod 321e32d Araq [+0 ±1 -0]: Merge pull request #384 from Tass/master... 3 more lines
20:04:45NimBotAraq/Nimrod 1ec2e11 Dominik Picheta [+0 ±1 -0]: Fixed incorrect drawing of rectangles by graphics.drawRect.
20:04:45NimBotAraq/Nimrod e0b592a Dominik Picheta [+0 ±6 -0]: Fixed recvLine deprecation warnings.
20:06:48dom96looks like NimBot needs to include the branch in the commit notifications
20:07:03Araqindeed
20:10:10reactormonkwhat happend to the GSoC?
20:10:23Araqyou didn't push me enough
20:12:12reactormonkgone thne
20:26:50fowlAraq: i dont see a difference in the examples
20:26:58fowlthe newbutton() ones
20:27:29fowlthe irc logs should probably be <tt>'d
20:27:53fowlassuming indentation was lost
20:28:58Araqfowl: hrm, well it's about the final closing )
20:29:24fowldoes it have to be lined up with the opening one now
20:29:25Araqbut anyway, I kept backwards compatibility so it should be fine now
20:29:50Araqlol
20:30:04Araqhrm the old parser allowed:
20:30:08fowli like to close nests of parens like ) ) ) so they line up with opening and closing columns
20:30:31AraqnewButton(onClick = proc(b: PButton) =
20:30:32Araq var requestomat = 12
20:30:34Araq )
20:30:39Araqthe new one prefers:
20:31:21AraqnewButton(onClick = proc(b: PButton) =
20:31:23Araq var requestomat = 12
20:31:24Araq)
20:32:37fowlwill this still work https://gist.github.com/fowlmouth/53262795290d4327ae21
20:34:31Araqgood question
20:38:07fowlhey I tested if this worked right but could you verify
20:38:17fowltype PObject = ref TObject
20:38:30fowltype PSubObj = ref object of PObject
20:38:58fowl^ will actually make TSubObj inherit from TObject
20:39:12Araqthat's the intention yes
20:39:32fowlcool
20:48:50reactormonkdom96, btw, add http://developer.github.com/v3/repos/statuses/ to the build farm?
20:51:44dom96yeah, it's on my todo list. Although building all pull requests may prove quite costly.
21:09:50*Madison joined #nimrod
21:09:50*Madison quit (Changing host)
21:09:51*Madison joined #nimrod
21:10:43Araqsometimes I wish to inhibit nimbuilds auto building feature
21:11:08Araqmaybe it can check for "(nimbuild:off)" in the commit message? :P
21:15:07*Trix[a]r_za is now known as Trixar_za
21:20:24Araqfowl: your gist still parses
21:21:45dom96Araq: I think I should just make it build at some set time.
21:21:59dom96Araq: And allow you to force a build maybe
21:23:08Araqhrm
21:23:23Araqthat might make things worse
21:23:33AraqI'm now used to not do anything after a push
21:23:39dom96lol
21:52:58*Madison quit (Quit: Leaving)
22:08:41JStokerdom96: I do think building all pull requests would be a rather good idea. (You could possibly adjust your code so that it prioritises builds which are to the master or whatever, and queue pull requests up when there's nothing else due. Don't know how hard that'd be, but you know. :-)) Just my two pennies. :) :p
22:25:27*algoban quit (Ping timeout: 252 seconds)
22:32:37dom96JStoker: Yeah, well the problem is that running the full test suite takes quite a long time. Doing it for each pull request could be too much. Especially if a pull request changes something small.
22:33:56*Trixar_za is now known as Trix[a]r_za
22:34:05JStokerThat's the reasoning behind only doing it if there's not anything more important to build... That being said, I'm not sure on what you've got in terms of CI, so I don't know if it's possible for you to have it suspend the tests if there's something more important.
22:34:56JStokerdom96: One potential solution may be just wait a hour or so. If it's something small (and they prod you in here, or whatever) and you do merge it already, then it's not really a problem.
22:35:32JStokerdom96: I'd personally say just go for it, it's not as if your CPU power can run out.
22:38:35dom96Indeed. I've already considered many solutions.
22:38:44fowldom96: im hung up on this component lib on how to handle communication between components
22:39:08dom96Currently one of the builder runs on my linode so it would be preferable it if doesn't use 400% CPU constantly.
22:39:29fowluse `nice`?
22:39:40JStokerdom96: nice it down a tonne?
22:40:01*OrionPK joined #nimrod
22:40:07JStokeroh, well done fowl :p
22:40:18JStokerdom96: And, reboot your linode so that it can use 800% CPU! :D
22:41:01JStokerdom96: Unsure how the build system is setup, but if it reacts nicely to SIGSTOP/SIGCONT, those may be a good method of a hackish "pause/resume" thing. <naive>
22:41:02dom96Still, I would be afraid that Linode might get angry because of the high CPU usage.
22:41:20JStokerdom96: eh, there's not /that/ many pull requests done for nimrod though, is there?
22:41:39JStokerdom96: How long do the CI tests take? Hours? Days? Weeks? :3
22:41:50dom96Not currently. But the amount will increase.
22:41:55dom96A lot i'm sure.
22:42:30dom96~15 minutes.
22:42:49dom96That's together with bootstrapping.
22:42:49JStokerdom96: Linode will go tell you if you're being abusive (Possibly want to send a ticket in advance just so they know, although i doubt they care), so I wouldn't worry too much about that.
22:43:18dom96I could also just move the x86 builder onto the gcc farm.
22:43:20JStokerThat's really not that bad, heh. As long as you don't have more than a pull request every 20m or so, it shouldn't be too much of a burden.
22:43:43JStokerIndeed, if you find it's too much for one machine, poke someone else to set one up and share the load!
22:44:19dom96But other arrangements may need to be made for personal builders, like gradha's builder.
22:44:29dom96Which runs on his macbook.
22:44:39*Madison joined #nimrod
22:44:47dom96I'm sure he would not like for it to be constantly compiling things.
22:45:56JStokerIndeed, possibly make it so that people can say "I don't want to compile pull requests" or whatever. Or tell him to just nice it down, or whatever. I don't know. :-)
22:46:06Araqdom96: I'm already making the tests larger instead of making ever more tests
22:46:21Araqbecause I don't want them to take more than 15 minutes
22:51:12dom96fowl: About your component lib. Got any more info?
22:51:31dom96Araq: What do you think about JStoker's suggestions?
22:56:03AraqSIGSTOP/SIGCONT is hackish and I can't see what it does solve
22:56:21Araqyou already have a nice state machine for the builder
22:56:24*Madison quit (Quit: Leaving)
22:56:51JStokerIt's only as a "pause the current build" or whatever (I have *ZERO* idea what your build system is like, or any of that, so I highly expect there's a better solution!) to build a more important commit or whatever.
22:56:57JStokerIf there's a better way, use that! (Please! :p)
22:57:35dom96I think it would be fine to just finish building whatever build is currently running.
22:58:03JStokerThat's also a perfectly valid solution too! :)
23:02:12Araqmeh ... it should wait for 10 minutes to make sure no other request is coming
23:02:38Araqhowever it may be forced with some nimbot command
23:03:16JStokerYeah, that's a decent solution.
23:08:22dom96good night
23:08:30Araqsame here, good night
23:08:31fowldom96: waaaitt
23:08:52dom96fowl: go on then! :P
23:09:19fowlhttps://gist.github.com/fowlmouth/5439372
23:11:51Araqfowl: you need to learn about the new object constructors
23:12:13Araqnew result; result.x = x; result.y = y is old fashioned ;-)
23:12:24fowlwhats the new way
23:12:27Araqresult = CPos(x: x, y: y)
23:12:43fowlthat will allocate a new one too?
23:13:19Araqit will invoke 'new' for a ref type, yes
23:13:41fowlneat
23:14:40AraqI don't like your 'ref' happiness though ;-)
23:14:49dom96argh, I'm not sure I can help you. Maybe Araq can :P
23:15:02AraqCPos has 2 floats, no need to make that 'ref object'
23:15:19dom96bye
23:15:32AraqI'm not sure what you mean
23:15:43Araqbut it looks to me you simply want to use methods?
23:16:01Araqmethod draw(e: PEntity) = assert false
23:16:30fowlAraq: i need it for other components where i need inheritance
23:16:41Araqmethod draw(c: PCarl) = # draw the circle
23:17:25fowlAraq: i dont want to write code for individual entities, having a CCircular and CPos is all you need to be draw as a circle
23:20:29Araqmethod draw(x) = moveTo(x.position); draw(x.rendr)
23:20:35AraqI dunno
23:21:01fowlare there generic methods now?
23:21:06Araqyeah
23:21:12fowl:O that is probably what i want
23:21:20Araqperhaps
23:21:30fowlmethod draw(some: CRenderable; entity: A; R: sdl2.PRenderer)
23:22:12Araqgeneric instantiation for methods had some semantic issue that I can'r remember
23:22:47Araqbut it should work
23:26:25fowlmethod draw(some: CRenderable; entity: A; R: sdl2.PRenderer)
23:26:35fowler
23:29:09fowlits not working right https://gist.github.com/fowlmouth/5439372 the default draw() is getting called
23:29:43fowlwait lemme update nimrod>_>
23:30:01Araqthe problem is that draw for CCircular is not instantiated
23:30:21Araqand so can't participate in the dynamic call
23:30:38Araqyou need to instantiate it explicitly and then it should work
23:30:45AraqI know it's ugly
23:31:04Araqbut it seems far worse to instantiate every possible method "just because"
23:31:24fowlhow do I do that? discard draw[CCircular] ?
23:31:59Araqyeah it's worth a try *cough*
23:33:58fowlneed another pragma >_>
23:34:24fowl{.instantiateIrregardless.}
23:34:46AraqI'll think about the problem again :-)
23:34:58Araqlooks pretty hard to solve thouhg
23:35:01Araq*though
23:35:25Araqc++ doesn't support virtual templatized functions either
23:36:55Araqhowever, how do that component stuff work?
23:37:15Araqyou've got rectangles and circles and then what?
23:37:54Araqhow many of these primitives even have an algorithm how to draw it?
23:38:38fowlwell i've been reading a lot of c++ example systems and it looks like they abuse templates and static vars to do stuff like entity.getComponent<CPos>.doStuffWithIt..
23:39:17fowlAraq: they describe a behavior so they could be used to handle input or do things with packets
23:39:55Araqsounds like a poor man's "fields" iterator to me :P
23:42:58Araqoh btw please checkout the newparser branch and see if that new parser compiles your code :-)
23:43:13AraqI know it still parses keineschweine :-)
23:44:29Araqgood night
23:45:46fowlok
23:45:47fowlnight
23:56:46*Madison joined #nimrod
23:56:46*Madison quit (Changing host)
23:56:46*Madison joined #nimrod