--- Log opened Wed Apr 12 00:00:50 2017 |
00:29 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
01:03 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
01:07 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
01:07 | | mode/#code [+o Alek] by ChanServ |
02:34 | | Kindamoody is now known as Kindamoody[zZz] |
03:27 | | Turaiel is now known as Turaiel[Offline] |
03:36 | | Turaiel[Offline] is now known as Turaiel |
03:49 | <&[R]> | http://libcello.org/ |
04:18 | | macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [Connection reset by peer] |
04:18 | | macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code |
04:18 | | mode/#code [+o macdjord|slep] by ChanServ |
04:25 | | macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has quit [Connection reset by peer] |
04:26 | | macdjord|slep [macdjord@Nightstar-ahbhn1.cable.rogers.com] has joined #code |
04:26 | | mode/#code [+o macdjord|slep] by ChanServ |
04:31 | | Turaiel is now known as Turaiel[Offline] |
04:32 | | Jessikat [Jessikat@Nightstar-06bf49.dab.02.net] has joined #code |
04:35 | | Jessikat` [Jessikat@Nightstar-kcsmqv.dab.02.net] has quit [Ping timeout: 121 seconds] |
05:07 | | Derakon is now known as Derakon[AFK] |
07:16 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
07:16 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
07:36 | | Kindamoody[zZz] is now known as Kindamoody |
07:43 | <~Vornicus> | gah, still too many instructions to fit on one chip. The motor drive for the aquaponics thing is annoying. |
07:55 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] |
07:56 | | Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code |
07:56 | | mode/#code [+o Reiv] by ChanServ |
08:01 | <~Vornicus> | now I'm trying to fit it on *two* chips and it's still too much to do. |
08:01 | <~Vornicus> | There Has To Be A Better Way⢠|
08:20 | | * Vornicus needs literally one more word of memory. |
08:34 | <~Vornicus> | frustration! I can't see how to do this at all. |
08:39 | <@abudhabi> | What are you making? |
08:40 | <~Vornicus> | playing shenzhen i/o, making an aquaponics robot controller. |
08:40 | <~Vornicus> | Primary challenge is, given a station number, provide commands to move the robot to that station from whereever it is. |
08:43 | | RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has quit [Connection closed] |
08:46 | | celticminstrel is now known as celmin|sleep |
08:52 | | Kindamoody is now known as Kindamoody|afk |
08:56 | <~Vornicus> | So much of this would be easier if I had a one instruction negate command |
08:57 | <~Vornicus> | instead I have to use both registers and three instructions to do that. |
09:00 | <@abudhabi> | Hm. |
09:00 | <@abudhabi> | Suppose I have an Enum in Java. Is there a way to easily determine if a given code is before any other code in there? |
09:02 | <@abudhabi> | Like, I've got O, B, A, F, G, K, M and I want to grab the values that are AFTER an arbitrary value I'm given. |
09:02 | <@abudhabi> | So if I'm given A, I want to grab F, G, K and M. |
09:02 | <@abudhabi> | Or do I need to do that manually? |
09:19 | <~Vornicus> | enums in java appear to not have numbers available directly |
09:19 | <&McMartin> | Indeed not; they're a discipline for pre-constructed objects |
09:19 | <~Vornicus> | the things I see people doing are adding functions to the enum. |
09:20 | <&McMartin> | Yep |
09:20 | <&McMartin> | That's a big thing to do, it gets you a clunky approximation of algebraic data types |
09:21 | <~Vornicus> | theeere it goes. |
09:21 | <~Vornicus> | good lord I'm apparently terrible at this assembler stuff |
09:22 | <@abudhabi> | So you're saying I can't compare these objects? |
09:22 | <~Vornicus> | Not like that. |
09:22 | <@abudhabi> | At least not without overloading equals, etc. |
09:23 | <&McMartin> | Vornicus: I turn out to be pretty awful at wiring chips together |
09:23 | <&McMartin> | Also it took me far, far too long to really become aware of the slx instruction and how utterly crucial it is |
09:25 | <~Vornicus> | I wish I could use slx in some of these situations |
09:26 | <~Vornicus> | I'm talking to radios, and they produce -999 instead of blocking, so I end up with two or three instructions instead of 1. |
09:27 | <&McMartin> | Ah yes |
09:27 | <&McMartin> | You can buffer those with extra chips but that rarely helps |
09:27 | <&McMartin> | What *can* matter is that XInput external sources are fully buffered |
09:28 | <&McMartin> | If for some reason your problem doesn't require all its data immediately, you can totally spread the reads out over multiple clock cycles |
09:28 | <~Vornicus> | (once I get into my own hardward, slx is used heavily; I've got three chips for aquaponics, one which needs to deal with async, one which uses slx and a guard line to know when to read from memory, and one that uses data it slx's for) |
09:28 | <&McMartin> | That shaved off something like five chips off one of my designs -_- |
09:28 | <~Vornicus> | lordy. |
09:28 | <&McMartin> | Two RAM chips, two controllers, and a multiplexer logic unit, IIRC |
09:29 | <&McMartin> | Routing that one was no fun at all and I was operating under a restriction I didn't even have -_- |
09:29 | <&McMartin> | Also man you are cruising |
09:31 | <&McMartin> | I should go win 3 more games of solitaire |
09:33 | <~Vornicus> | are radios fully buffered? |
09:47 | | * Vornicus pokes vaguely at the aquaponics one, tries to figure out if there's a way to eschew the memory chip. |
10:01 | | * McMartin goes and wins 3 more games of solitaire. |
10:02 | <&McMartin> | I think radios are fully buffered but I also think that most cases require you to consume all input and respond within the same clock cycle |
10:03 | <~Vornicus> | mm, aquaponics you *may* need all three on the first clock but usually you use one, wait 4-6 clocks, then the next, wait a clock or 3, then the third. |
10:11 | | * McMartin gets his 21st win, goes to bed |
10:20 | <@TheWatcher> | g'night |
11:02 | | Jessikat` [Jessikat@Nightstar-6unaiq.dab.02.net] has joined #code |
11:05 | | Jessikat [Jessikat@Nightstar-06bf49.dab.02.net] has quit [Ping timeout: 121 seconds] |
11:26 | <~Vornicus> | baaaah, simple i/o is limited to 0 to 100 :( |
11:39 | | * Vornicus now pokes at the i ching one. |
11:52 | | Jessikat` is now known as Jessikat |
12:03 | | * abudhabi headscratches. |
12:04 | <@abudhabi> | I want to convert the gravitational constant to kilometers, from meters. I should divide it by 1000 000 000, right? |
12:29 | <~Vornicus> | correct |
12:31 | <@abudhabi> | And converting it from seconds to standard days would take multiplying it by (86400*86400)? |
12:37 | <@abudhabi> | So many yaks. So little time. |
12:40 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection reset by peer] |
12:41 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
12:41 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
12:44 | < Jessikat> | New quest: document all our core types and see how far I can get before anyone stops me and tells me to do something else |
12:53 | <~Vornicus> | watch them worship at your feet |
12:55 | <@abudhabi> | Urgh. If you take the square root of [1/s^2] you get [s]? |
12:58 | <@abudhabi> | Ah, I think I see. |
12:58 | <@abudhabi> | There's a double division here, which means you flip the numerator and the denominator. |
13:41 | | RchrdB [RchrdB@Nightstar-qe9.aug.187.81.IP] has joined #code |
13:56 | <~Vornicus> | too damn many inputs |
14:13 | <~Vornicus> | this would work if I could fit everything on the board. |
14:20 | | celmin|sleep is now known as celticminstrel |
14:29 | | * Vornicus manages to fit everything on the board. so full. |
14:38 | | IRCFrEAK [gk.1wm.su@Nightstar-fae.6pf.118.50.IP] has joined #code |
14:39 | | IRCFrEAK [gk.1wm.su@Nightstar-fae.6pf.118.50.IP] has quit [RecvQ exceeded] |
14:58 | <~Vornicus> | http://imgur.com/v4z3xm3 srsly |
15:00 | <@TheWatcher> | Impressive |
15:10 | | * Vornicus is also halfway to BECOME IMMORTAL because it is a quite good solitaire game. |
15:15 | | * TheWatcher eyes this |
15:15 | <@TheWatcher> | I'm going to have to do horrendous things with SQL again, aren't I -_- |
15:16 | <@Tamber> | Yes. |
15:18 | <@ErikMesoy> | Ever was it so, ever will it be |
15:19 | | * TheWatcher breats out set, variables, subqueries, and the Forbidden Song of Hali |
15:25 | <@TheWatcher> | *breaks even |
16:11 | < Jessikat> | XD |
16:11 | < Jessikat> | I've decided that Value Collections is the general designation of types of set containers. |
16:11 | < Azash> | I dunno, that last part seems more like bleats |
17:29 | < Jessikat> | ...all of our container types except the ones I've written are awful |
17:30 | < Jessikat> | (well, and the specialised ones the projects use) |
17:32 | | Jessikat` [Jessikat@Nightstar-bf2126.dab.02.net] has joined #code |
17:33 | < RchrdB> | Jessikat`, no std:: stuff? |
17:33 | < Jessikat`> | For a variety of sane, largely historical reasons, we define our own containers and algorithm implementations |
17:34 | < Jessikat`> | Though the std containers are bad enough that I wouldn't want to use them for what we do anyway, given the chance to avoid it |
17:34 | | mak10lee [mak10lee@Nightstar-k4o.l05.66.41.IP] has joined #code |
17:35 | < Jessikat`> | It's not really their fault, they're just specified in ways that make it impossible to optimise them for modern architectures (largely because memory is now so much slower than cpu computation) |
17:35 | | Jessikat [Jessikat@Nightstar-6unaiq.dab.02.net] has quit [Ping timeout: 121 seconds] |
17:37 | < RchrdB> | Howso? std::list, std::slist are obviously awful but std::vector is dense? |
17:37 | < RchrdB> | or is it like |
17:38 | < RchrdB> | the fact that they give you no help whatsoever with arranging data in a SoA (instead of AoS) layout? |
17:38 | < Jessikat`> | std::vector is the reasonable one, though. vector<bool> is still a wart |
17:39 | < Jessikat`> | It's the fact that even unordered_map will guarantee you at least two cache misses per operation |
17:40 | < Jessikat`> | So there's no fast associative collection available in the standard library |
17:41 | < RchrdB> | Is that an implementation issue or is does the interface practically mandate it? |
17:41 | < Jessikat`> | The interface mandates that you have a closed addressed bucketed implementation |
17:42 | < Jessikat`> | I believe std::map has similarly bad properties, though I know less about that one |
17:42 | < Jessikat`> | You'll also find that people depend on the fact that the internal nodes are never moved |
17:42 | < Jessikat`> | Despite that not being part of the explicit interface |
17:43 | < RchrdB> | I vaguely recall hearing that std::map is mandated to be a red-black tree or something like that. |
17:43 | < Jessikat`> | Yeah, I would imagine so |
17:43 | < Jessikat`> | Either way, the interfaces are too wide and too involved |
17:43 | < RchrdB> | Which is obviously, uh, I mean you almost certainly want a 4-way or 8-way btree at the very minimum? |
17:44 | < Jessikat`> | If you get the chance to look at clojure's collections, those are interesting |
17:44 | < Jessikat`> | I admit I don't know what my ideal tree would look like on current architecture, but it's going to be nothing like std::map was originally intended |
17:45 | <&jerith> | I think I've spent more time playing solitaire than playing the actual game. |
17:45 | < RchrdB> | I was thinking, since we have 64 byte / 8 word long cache line sizes on basically all the computers that people use nowadays |
17:46 | < RchrdB> | then it probably doesn't make sense to have a balanced tree data structure with a maximum branching factor below 4? because once you've read in one cache line, you may as well use the whole thing to look at more {key,subtree} pointer pairs |
17:47 | < RchrdB> | Jessikat`, btw do you have an opinion on EASTL? |
17:47 | < Jessikat`> | They probably have some good points but it almost certainly doesn't fix what it needs to, I would imagine |
17:48 | < Jessikat`> | But yeah, what you really want is an interface on your collections that is independent of implementation, then treat any tweaks that you might want based on machine as platform specifics |
17:49 | < Jessikat`> | You might actually want to choose between closed and open addressing for your dictionary types, I guess |
17:49 | < Jessikat`> | But it's still a detail that you ought not to care about at the top level |
17:49 | < Jessikat`> | It should ideally be a compile time or runtime option that can be set globally or for specific collections if you really need it for some purpose |
17:49 | < RchrdB> | btw I had to look up http://stackoverflow.com/questions/31112852/how-stdunordered-map-is-implemented |
17:50 | < RchrdB> | because I didn't understand, from glancing at the docs, where the fact that the interface for std::unordered_map mandates closed addressing comes from |
17:51 | < RchrdB> | though I will say that the explicit notice about exactly when rehashing is allowed to occur in the docs for operator[] *did* sound fishy. :) |
17:52 | < Jessikat`> | It literally allows you to ask for buckets, which just flat out means you can't do open addressing, I think |
17:52 | < Jessikat`> | But yeah, heh |
17:53 | < RchrdB> | Oh! I missed that. |
17:53 | | Jessikat` is now known as Jessikat |
17:54 | < RchrdB> | btw I was asking your opinion of EASTL because I was curious. I don't know anything about it except hearing that EA peeps wrote it to address shortcomings in stl, so I was curious to hear the opinion of it from someone with way more C++ experience than me. |
17:56 | < Jessikat> | I suppose you could always have special iterator types that check the hashes of the buckets as they go |
17:56 | < Jessikat> | Hmm |
17:56 | < Jessikat> | Anyway |
17:56 | < Jessikat> | Oh, I've not actually looked at the EASTL for some time |
17:57 | < Jessikat> | I remember they had some very particular opinions on allocators which are likely relevant, though those are being looked at and replaced right now |
18:32 | | mak10lee [mak10lee@Nightstar-k4o.l05.66.41.IP] has quit [[NS] Quit: ] |
18:50 | <~Vornicus> | modern system performance befuddles the hell out of me |
18:53 | | Jessikat` [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has joined #code |
18:53 | < RchrdB> | it's fun though! :) |
20:01 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has quit [Ping timeout: 121 seconds] |
20:06 | | Alek [Alek@Nightstar-7or629.il.comcast.net] has joined #code |
20:06 | | mode/#code [+o Alek] by ChanServ |
20:09 | <&jerith> | This colour changing shoes thing seems really hard. |
20:09 | <&jerith> | Which means I'm probably missing a simple trick that would get rid of a whole bunch of code. |
20:48 | | Jessikat [Jessikat@Nightstar-bf2126.dab.02.net] has quit [[NS] Quit: Bye] |
21:03 | | Jessikat` is now known as Jessikat |
21:41 | | Kindamoody|afk is now known as Kindamoody |
21:48 | | ErikMesoy [Bruker@Nightstar-hq72t5.customer.cdi.no] has left #code [] |
22:02 | < Jessikat> | Also, the collective noun for C++ templates is 'a sawblade' |
22:02 | <&McMartin> | "A sawblade of templates"? |
22:03 | <&McMartin> | Also, re: EASTL: I don't suppose it has credited developers, does it? |
22:04 | < Jessikat> | it appears to exist as an open source thing now |
22:04 | | Jessikat [Jessica@Nightstar-bt5k4h.81.in-addr.arpa] has quit [[NS] Quit: Leaving] |
22:05 | <&McMartin> | Aha, so it does |
22:05 | <&McMartin> | And it has credits! |
22:05 | <&McMartin> | And I don't know any of the names. |
22:18 | | Jessikat [Jessikat@Nightstar-bf2126.dab.02.net] has joined #code |
22:58 | | Turaiel[Offline] is now known as Turaiel |
23:29 | | Kindamoody is now known as Kindamoody[zZz] |
--- Log closed Thu Apr 13 00:00:52 2017 |