| 00:15:28 | * | familiar125 joined #nimrod |
| 00:20:20 | * | familiar125 quit (Read error: Connection reset by peer) |
| 00:32:53 | * | familiar125 joined #nimrod |
| 00:38:35 | * | familiar125 quit (Read error: Connection reset by peer) |
| 00:38:50 | * | familiar125 joined #nimrod |
| 00:40:21 | * | familiar125 quit (Read error: Connection reset by peer) |
| 00:40:38 | * | familiar125 joined #nimrod |
| 00:40:47 | * | yogin joined #nimrod |
| 00:41:10 | OrionPK | ha, sorry bout that.. forgot to change my cfg back |
| 00:41:23 | * | familiar125 quit (Read error: Connection reset by peer) |
| 00:43:40 | * | BitPuffin quit (Read error: Operation timed out) |
| 01:54:51 | * | DAddYE quit (Remote host closed the connection) |
| 01:55:25 | * | DAddYE joined #nimrod |
| 01:59:43 | * | DAddYE quit (Ping timeout: 245 seconds) |
| 02:16:55 | * | brson quit (Ping timeout: 272 seconds) |
| 02:18:29 | * | brson joined #nimrod |
| 02:20:01 | * | familiar125 joined #nimrod |
| 02:56:13 | * | DAddYE joined #nimrod |
| 03:01:15 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 03:06:02 | * | DAddYE joined #nimrod |
| 03:10:14 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 03:25:50 | * | brson quit (Ping timeout: 245 seconds) |
| 03:45:10 | * | xenagi joined #nimrod |
| 03:47:16 | * | webskipper quit (Ping timeout: 264 seconds) |
| 03:48:45 | * | DAddYE joined #nimrod |
| 03:48:59 | * | DAddYE quit (Remote host closed the connection) |
| 03:49:06 | * | DAddYE joined #nimrod |
| 03:49:49 | * | DAddYE quit (Remote host closed the connection) |
| 04:28:23 | * | familiar125 quit (Read error: Connection reset by peer) |
| 04:50:59 | * | DAddYE joined #nimrod |
| 04:55:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 05:01:31 | * | DAddYE joined #nimrod |
| 05:05:50 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 05:08:04 | * | shodan45 joined #nimrod |
| 05:08:33 | * | OrionPK quit (Read error: Connection reset by peer) |
| 05:44:06 | * | xenagi quit (Quit: Leaving) |
| 05:52:53 | * | DAddYE joined #nimrod |
| 05:57:12 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 06:09:41 | * | DAddYE joined #nimrod |
| 06:09:48 | * | DAddYE quit (Remote host closed the connection) |
| 06:09:54 | * | DAddYE joined #nimrod |
| 06:42:59 | * | DAddYE quit (Remote host closed the connection) |
| 06:52:05 | * | Varriount quit (Read error: Connection reset by peer) |
| 06:52:25 | * | Varriount joined #nimrod |
| 07:44:09 | * | DAddYE joined #nimrod |
| 07:48:28 | * | DAddYE quit (Ping timeout: 245 seconds) |
| 07:54:16 | * | DAddYE joined #nimrod |
| 07:59:11 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 08:12:10 | * | XAMPP joined #nimrod |
| 08:28:30 | * | q66_ joined #nimrod |
| 08:29:00 | * | q66 quit (Disconnected by services) |
| 08:29:02 | * | q66_ is now known as q66 |
| 08:30:40 | * | Jackneill joined #nimrod |
| 08:45:55 | * | DAddYE joined #nimrod |
| 08:50:29 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 09:02:21 | * | webskipper joined #nimrod |
| 09:40:43 | * | CarpNet joined #nimrod |
| 09:47:24 | * | DAddYE joined #nimrod |
| 09:52:17 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 10:43:40 | * | Hannibal_Smith joined #nimrod |
| 10:48:46 | * | DAddYE joined #nimrod |
| 10:53:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 11:10:24 | * | BitPuffin joined #nimrod |
| 11:10:34 | BitPuffin | good * |
| 11:10:36 | BitPuffin | folks |
| 11:11:02 | BitPuffin | Araq: watcha gonna do now eh? |
| 11:11:52 | fowl | hi |
| 11:12:21 | BitPuffin | hey fowl |
| 11:15:00 | fowl | BitPuffin, i'm rewriting this in nimrod https://github.com/fowlmouth/readable-cpp |
| 11:16:47 | BitPuffin | "Studies have shown that reading type declarations in C can cause dizziness, drymouth, nausea, diabetes, ocular warts and constipation and may be linked to low sperm count" |
| 11:16:49 | BitPuffin | lol |
| 11:17:21 | fowl | thats true |
| 11:17:31 | fowl | its the basis of my thesis |
| 11:17:40 | fowl | when i get to the point where i need to write a thesis |
| 11:18:16 | BitPuffin | fowl: how is that gonna be written in nimrod? |
| 11:18:26 | BitPuffin | ah |
| 11:18:31 | BitPuffin | it's a translator? |
| 11:18:43 | fowl | yea |
| 11:28:01 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
| 11:30:27 | * | BitPuffin joined #nimrod |
| 11:30:50 | BitPuffin | fowl: but why would you want to make c++ bareable :P |
| 11:31:06 | fowl | BitPuffin, because it pisses off people who love c++ :) |
| 11:31:31 | fowl | they hate change more than republicans |
| 11:31:37 | BitPuffin | fowl: lol :D |
| 11:34:04 | fowl | what i have so far https://gist.github.com/fowlmouth/57405bf26ed8c1b4e357 |
| 11:35:03 | BitPuffin | hmm, doesn't seam like portaudio has that much more than libao |
| 11:35:08 | BitPuffin | just that it handles stream |
| 11:35:11 | BitPuffin | s |
| 11:35:27 | fowl | is there alrady a libao wrapper |
| 11:35:37 | BitPuffin | fowl: hehe |
| 11:35:39 | BitPuffin | yeah |
| 11:35:41 | BitPuffin | there is |
| 11:35:50 | BitPuffin | nim-ao |
| 11:41:37 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
| 11:41:51 | * | BitPuffin joined #nimrod |
| 11:50:06 | * | DAddYE joined #nimrod |
| 11:55:09 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 12:34:10 | * | Hannibal_Smith quit (Quit: Sto andando via) |
| 12:34:27 | * | Hannibal_Smith joined #nimrod |
| 12:51:30 | * | DAddYE joined #nimrod |
| 12:55:44 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 13:50:03 | * | Hannibal_Smith quit (Ping timeout: 272 seconds) |
| 13:52:44 | * | DAddYE joined #nimrod |
| 13:57:17 | * | DAddYE quit (Ping timeout: 252 seconds) |
| 13:58:48 | * | BitPuffi1 joined #nimrod |
| 13:59:24 | * | BitPuffin quit (Read error: Connection reset by peer) |
| 14:08:14 | * | BitPuffi1 is now known as BitPuffin |
| 14:14:15 | * | webskipper quit (Ping timeout: 246 seconds) |
| 14:14:35 | BitPuffin | Heh! Cool, UnigineScript shares a property that nimrod has |
| 14:14:42 | BitPuffin | and that is that they got rid of protected :P |
| 14:21:05 | BitPuffin | or hmm |
| 14:21:07 | BitPuffin | private means that such member is accessible from within other members of the same class and members of the inherited classes. |
| 14:21:18 | BitPuffin | guess that makes it protected? |
| 14:30:35 | * | Hannibal_Smith joined #nimrod |
| 14:33:32 | * | q66 quit (Ping timeout: 246 seconds) |
| 14:36:19 | * | q66 joined #nimrod |
| 14:54:09 | * | DAddYE joined #nimrod |
| 14:58:14 | * | DAddYE quit (Ping timeout: 240 seconds) |
| 15:11:14 | * | Hannibal_Smith quit (Quit: Sto andando via) |
| 15:16:40 | * | noam_ is now known as noam |
| 15:17:50 | * | tylere quit (Remote host closed the connection) |
| 15:26:18 | dom96 | yo |
| 15:35:42 | BitPuffin | hey dom96 |
| 15:45:13 | dom96 | hey BitPuffin, what's up? |
| 15:46:01 | BitPuffin | dom96: learning how to script in Unigine, you? |
| 15:53:58 | dom96 | eating :P |
| 15:54:20 | BitPuffin | dom96: nice, what are you eating? |
| 15:54:44 | dom96 | panini |
| 16:01:13 | BitPuffin | dom96: fuck that would be nice to eat :D |
| 16:02:08 | dom96 | yep, it was lol |
| 16:04:19 | * | OrionPK joined #nimrod |
| 16:09:05 | * | q66 quit (Ping timeout: 246 seconds) |
| 16:16:28 | * | q66 joined #nimrod |
| 16:21:41 | * | q66 quit (Ping timeout: 246 seconds) |
| 16:37:35 | * | Mat2 joined #nimrod |
| 16:37:42 | Mat2 | hi all |
| 16:37:51 | * | Mat2 is now known as Mat2-coding |
| 16:39:23 | BitPuffin | yo Mat2-coding |
| 16:40:56 | Mat2-coding | hi BitPuffin |
| 16:41:37 | * | q66 joined #nimrod |
| 16:46:05 | * | yogin quit (Quit: Leaving) |
| 16:46:51 | dom96 | This article per week thing isn't working out very well |
| 16:47:55 | Mat2-coding | hi dom96 |
| 16:48:04 | dom96 | hi Mat2-coding |
| 16:48:16 | BitPuffin | dom96: no, my blog isn't done yet :P |
| 16:50:45 | * | q66 quit (Ping timeout: 246 seconds) |
| 16:51:16 | * | q66 joined #nimrod |
| 16:56:13 | BitPuffin | dom96: and I'm not quite sure I'm gonna finish it before I finish this project |
| 16:56:52 | * | DAddYE joined #nimrod |
| 16:57:04 | BitPuffin | dom96: I'll probably just finish the parts I need to get paid, and then write my company website (possibly in the nimrod pro-programming language :D) and write a game that I want to release in december |
| 16:57:51 | BitPuffin | anyways gotta go! |
| 16:58:08 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
| 17:01:35 | * | DAddYE quit (Ping timeout: 272 seconds) |
| 17:09:02 | * | mak2 joined #nimrod |
| 17:18:12 | * | yogin joined #nimrod |
| 17:31:21 | * | q66 quit (Ping timeout: 246 seconds) |
| 17:47:37 | * | brson joined #nimrod |
| 17:59:28 | * | q66 joined #nimrod |
| 17:59:53 | * | mak2 left #nimrod ("WeeChat 0.4.2") |
| 18:04:15 | * | q66 quit (Ping timeout: 246 seconds) |
| 18:08:08 | * | DAddYE joined #nimrod |
| 18:08:14 | * | DAddYE quit (Remote host closed the connection) |
| 18:08:27 | * | DAddYE joined #nimrod |
| 18:18:47 | * | q66 joined #nimrod |
| 18:22:08 | * | q66 quit (Excess Flood) |
| 18:22:32 | * | q66 joined #nimrod |
| 18:24:42 | * | webskipper joined #nimrod |
| 18:29:26 | * | q66 quit (Ping timeout: 246 seconds) |
| 18:32:51 | * | CarpNet quit (Quit: Leaving) |
| 18:34:12 | Araq | hi yogin welcome (if you're new lol) |
| 18:34:29 | Araq | hi Mat2-coding how's coding? |
| 18:35:07 | Varriount | Good morning Araq. |
| 18:35:19 | Araq | good evening, Varriount |
| 18:35:32 | dom96 | Araq: Is there an offsetof? |
| 18:36:45 | * | Hannibal_Smith joined #nimrod |
| 18:40:35 | Araq | dom96: no but you can use the same hack as in C, I hope |
| 18:42:20 | Varriount | So Araq, does this new VM use bytecode? |
| 18:42:40 | dom96 | Anyone have any experience with opengl/glfw? |
| 18:43:03 | p0nce | opengl here |
| 18:43:10 | p0nce | but no glfw |
| 18:43:46 | * | q66 joined #nimrod |
| 18:43:54 | Varriount | I have theoretical knowledge, but no practical knowledge. I've always used frameworks |
| 18:44:22 | dom96 | Well I must admit I am too lazy to read anything about it. I'm porting some opengl/glfw C code to Nimrod and my program crashes on a call to glEnable() |
| 18:44:31 | Araq | template offsetof(typ, field): expr = (var dummy: typ; cast[int](addr(dummy.field)) - cast[int](addr(dummy)) |
| 18:44:36 | Araq | or something like that |
| 18:44:52 | p0nce | dom96: some code perhaps? |
| 18:44:59 | dom96 | Perhaps I am not initialising something. |
| 18:45:27 | Araq | called loadExtensions? |
| 18:45:49 | dom96 | nope. |
| 18:45:49 | Araq | everybody needs it, nobody thinks of it ... |
| 18:45:54 | dom96 | Where is it? |
| 18:46:10 | Araq | ## You need to call ``loadExtensions`` after a rendering context has been |
| 18:46:11 | Araq | ## created to load any extension proc that your code uses. |
| 18:46:20 | Araq | it's in opengl.nim |
| 18:46:37 | dom96 | I don't see any proc called 'loadExtensions' in opengl.nim |
| 18:46:56 | Araq | well it's a template |
| 18:47:08 | dom96 | It's not in the docs |
| 18:47:41 | Araq | hmm I guess the docgen assumes 'useGlew' is defined and then it's not there. gah. |
| 18:48:40 | Araq | Varriount: yes or rather "word"-code where word is 32 bits |
| 18:50:35 | dom96 | Araq: Yeah, that fixed it. |
| 18:52:21 | Araq | the problem is that opengl.nim can't call loadExtensions for you due to technical reasons ... |
| 18:52:37 | Araq | so everybody falls into that trap |
| 18:53:06 | Araq | but we can switch declaration order so that it's in the docs at least |
| 18:55:49 | Araq | Varriount: using bytes instead of words for a fast interpreter is stupid for lots of reasons; I will blog about it some day ... |
| 18:56:10 | Araq | Mat2-coding is free to disagree of course ;-) |
| 18:56:23 | * | q66 quit (Ping timeout: 246 seconds) |
| 18:56:27 | OrionPK | someone's in a good mood today |
| 19:02:53 | Varriount | Is there any circumstance where "genericObj[void](...)" should/would make sense? |
| 19:05:20 | Mat2-coding | hi Araq |
| 19:05:23 | OrionPK | if the T was the return type of a proc? |
| 19:05:56 | Varriount | OrionPK, but I'm talking about a generic *object* |
| 19:06:10 | OrionPK | right, but the object could contain a pointer to a proc |
| 19:06:18 | Varriount | Ah. |
| 19:06:22 | Varriount | Hm. |
| 19:06:57 | Varriount | I'm investigating how to best fix issue 633 (or at least how to dig up some more information) |
| 19:07:10 | * | q66 joined #nimrod |
| 19:07:17 | Mat2-coding | Varriount: What do you mean with bytecode ? (I suggest some kind of JVM like open-encoding) |
| 19:08:00 | Varriount | Mat2-coding, most vm's use an analogue to machine-code to represent instructions/actions |
| 19:08:33 | Varriount | In retrospect, it was a silly question to ask. |
| 19:14:36 | Araq | Varriount: there are no silly questions, only silly answers. *g |
| 19:15:44 | Mat2-coding | hm, in this terminology: Most VM designs I know use some kind of CISC encoding, the Lua VM is a canonical RISC design. Efficient interpreters are microcoding engines - you have the choice |
| 19:19:29 | * | q66 quit (Ping timeout: 246 seconds) |
| 19:22:16 | * | brson quit (Ping timeout: 240 seconds) |
| 19:24:22 | * | brson joined #nimrod |
| 19:25:39 | * | OrionPK quit (Ping timeout: 250 seconds) |
| 19:25:49 | * | webskipper quit (Ping timeout: 252 seconds) |
| 19:32:52 | * | anton2 joined #nimrod |
| 19:36:53 | Mat2-coding | Araq: My vm uses a packed word of instructions (like VLIW), no byte access involved ;) |
| 19:37:16 | Varriount | Mat2-coding, what vm would this be? |
| 19:37:40 | Araq | ah yeah, now I remember ;-) |
| 19:41:00 | * | webskipper joined #nimrod |
| 19:42:33 | Mat2-coding | Varriount: Packed opcode encoding (up to 16 instructions) + variable immediate fields, at runtime modificable MISC ISA, packed execution (static super-instructions), dual-stack design, software pipelining |
| 19:45:38 | Araq | in other words, Mat2-coding is our Chuck Moore here. :-) |
| 19:49:44 | Mat2-coding | my design is philosophical similar but of course different to his work (I use useless instruction combinations for implementing complex instruction-sequences as replacement for example) |
| 19:50:28 | Mat2-coding | like Swap+Swap, or Add+Drop |
| 19:52:43 | Araq | well Chuck uses 18 bit words and his instruction set lacks 'shr' iirc |
| 19:52:58 | Araq | it scares me :-) |
| 19:54:16 | Araq | I don't want to go back in time where basic operators have to emulated via loops and non-power-of-2 sizes were common |
| 19:55:35 | Mat2-coding | my vm uses the native word size, instructions slots are 4 bit wide and all common instructions inclusive multiplication and division are implemented though complex instructions, as described above |
| 19:56:15 | * | brson quit (Ping timeout: 252 seconds) |
| 19:58:14 | Mat2-coding | in addition: one can always compile new instructions at runtime from instruction sequences |
| 19:58:35 | Mat2-coding | it's an extensible design |
| 20:00:49 | * | brson joined #nimrod |
| 20:01:43 | Araq | yeah I remember. how do you determine whether a new opcode is beneficial? |
| 20:01:47 | * | tylere joined #nimrod |
| 20:02:46 | Araq | wb tylere |
| 20:03:21 | Mat2-coding | hi tylere |
| 20:04:29 | * | familiar125 joined #nimrod |
| 20:04:55 | Mat2-coding | Araq: I analyzed most used ISA's and implemented all common instructions |
| 20:05:43 | Araq | Mat2-coding: that's not what I meant. I mean how do you determine this at runtime? |
| 20:06:25 | Araq | I can see how you can compile new instructions from instruction sequences |
| 20:06:44 | Mat2-coding | I have a special instuction 'CS - compile subroutine' for this |
| 20:07:15 | Araq | when/how do you inject this CS instruction? |
| 20:07:30 | tylere | hi |
| 20:12:19 | Mat2-coding | ah ok, parsing the source-code the environment hold a statistic about most uses instruction patterns. These patterns are compiled to new instructions dependent of it by the code-generator |
| 20:12:48 | Mat2-coding | it's quite easy |
| 20:13:29 | * | brson quit (Ping timeout: 252 seconds) |
| 20:13:37 | Mat2-coding | ^about most used instruction patterns |
| 20:13:39 | * | q66 joined #nimrod |
| 20:16:36 | Araq | it's not easy. how do you implement this statistic and keep memory usage down? |
| 20:17:15 | * | familiar125 quit (Read error: Connection reset by peer) |
| 20:19:25 | Araq | brb |
| 20:19:26 | Mat2-coding | the code-generator modifying its own code and for the statistic I use a fixed cache of 32 entries with write-though access |
| 20:19:39 | tylere | How does Aporia compare to the Rust mode for SublimeText? |
| 20:27:37 | * | bastian_ joined #nimrod |
| 20:32:58 | Mat2-coding | ? |
| 20:33:18 | dom96 | hello bastian_ |
| 20:34:13 | dom96 | tylere: Well, Aporia has no Rust support whatsoever. |
| 20:34:44 | * | q66 quit (Ping timeout: 246 seconds) |
| 20:35:39 | tylere | oh god |
| 20:35:41 | tylere | brainfart |
| 20:35:47 | tylere | I meant nimrod obviously lol |
| 20:36:24 | Mat2-coding | get some sleep, ciao |
| 20:36:37 | dom96 | Probably pretty badly lol. |
| 20:36:52 | dom96 | I've never used Sublime Text with Nimrod. |
| 20:36:56 | * | Mat2-coding quit (Quit: Verlassend) |
| 20:38:40 | tylere | ok |
| 20:38:55 | tylere | it seems to be doing ok for me so far...syntax highlighting, basic symbol completion, that kind of thing |
| 20:39:12 | dom96 | ST or Aporia? |
| 20:39:17 | tylere | ST |
| 20:39:23 | tylere | Haven't downloaded aporia yet |
| 20:39:29 | tylere | as compiling gtk stuff on OS X is...interesting |
| 20:39:38 | tylere | and by interesting I mean about as fun as sitting on a rusty nail |
| 20:40:30 | Araq | currently aporia doesn't compile on mac due to an 'interesting' bug |
| 20:40:43 | Araq | hi bastian_ welcome |
| 20:43:28 | * | OrionPK joined #nimrod |
| 20:46:45 | tylere | The one thing so far that gives me a little bit of pause is char being a byte and not a code point. After using Go, which bakes UTF-8 in, I never want to go back |
| 20:48:56 | Hannibal_Smith | tylere, for example Go can compare string based on a collation? |
| 20:49:57 | tylere | I think so |
| 20:50:10 | tylere | not 100% sure, I didn't dig that deep into i18n stuff |
| 20:51:02 | tylere | But stuff like ToUpper is unicode-aware |
| 20:51:14 | tylere | and iterating over a string yeilds complete codepoints |
| 20:51:34 | tylere | likewise indexing is codepoint based |
| 20:52:39 | Hannibal_Smith | tylere, in theory, the topic a lot more complex |
| 20:52:45 | tylere | right ;) |
| 20:52:53 | tylere | it's not really a big pain point for me, personally |
| 20:52:54 | Hannibal_Smith | Simple thing like uppercasing a unicode char is hard |
| 20:53:13 | Hannibal_Smith | You have to keep in mind also the contex of the char |
| 20:53:40 | Hannibal_Smith | Probably, the only library that got this stuff right is ICU |
| 20:54:19 | Hannibal_Smith | I'm really hesitant to think that Go has replacement right what ICU do |
| 20:54:30 | tylere | it's mostly probably bad taste in my mouth from python2 unicode handling |
| 20:54:36 | Hannibal_Smith | http://userguide.icu-project.org/transforms/casemappings |
| 20:55:29 | Hannibal_Smith | Full (Language-Specific) Case Mapping <-For sure Go can't do this |
| 20:55:43 | Araq | "complete codepoints" are not sufficient either iirc |
| 20:56:51 | Hannibal_Smith | Araq, are you going to write a wrapper for ICU? :-P |
| 20:57:05 | Araq | we have a unicode module and an encodings module |
| 20:57:09 | * | q66 joined #nimrod |
| 20:57:18 | Araq | and it's good enough for me :P |
| 20:57:33 | Hannibal_Smith | So something basic like Go do, I think |
| 20:57:38 | tylere | My main preference is that the language not care about unicode when I don't |
| 20:57:42 | tylere | that's my gripe with python |
| 20:58:05 | tylere | I'll have some data I've slurped in from somewhere, and I want to dump it to a file or something, and Python loves to throw unicode errors |
| 20:58:12 | tylere | instead of just treating it as bytes |
| 20:58:16 | tylere | worst of both worlds |
| 20:58:33 | tylere | I think that it a bit better in Py3 but I haven't crossed that bridge yet |
| 20:59:08 | Araq | IME py3 is worse |
| 20:59:28 | Araq | with its crazy unicode exceptions |
| 20:59:37 | tylere | oh it's even worse? ugh |
| 20:59:49 | Araq | and the very existance of "byte string literals" shows it simply doesn't work IMHO |
| 20:59:55 | tylere | My views on python are kinda conflicted |
| 21:00:13 | tylere | I've used it for a loooong time (like 1.5.2, which is ancient, like 1998 or something) |
| 21:00:45 | tylere | at some point I think Guido kinda changed vision and it went from being a pragmatic language to all that "Zen of Python" stuff, some of which I strongly disagree with |
| 21:01:20 | * | q66 quit (Ping timeout: 246 seconds) |
| 21:03:29 | tylere | BTW Araq, I skipped around a bit and read the write effec stuff...sounds really sexy |
| 21:03:37 | tylere | basically an idea I had in my head for years |
| 21:03:50 | tylere | of basically having the compiler do dataflow analysis, and reason accordingly |
| 21:04:11 | tylere | even if not perfect if it can figure out even 50% of in-practice immutable functions automatically that's a pretty massive win |
| 21:05:32 | * | gradha joined #nimrod |
| 21:07:36 | Araq | well it's near perfect as far as I can tell |
| 21:07:44 | Araq | much more than 50% |
| 21:07:46 | tylere | that's pretty amazing then |
| 21:07:59 | Araq | but I need to implement it and we'll see |
| 21:08:21 | * | brson joined #nimrod |
| 21:09:28 | * | yogin quit (Quit: Leaving) |
| 21:09:46 | * | yogin joined #nimrod |
| 21:11:56 | Araq | tylere: http://en.wikipedia.org/wiki/Combining_character |
| 21:12:19 | tylere | Araq: hehe |
| 21:12:27 | Araq | this means even utf-32 doesn't map 1 to 1 to "characters" |
| 21:12:28 | tylere | Isn't unicode just the bestest thing ever? |
| 21:12:50 | Araq | so ... it doesn't help and wastes lots of memory and processing power |
| 21:12:54 | tylere | Maybe soon we'll all move to utf-64 |
| 21:13:03 | tylere | once the whole world is 64bit |
| 21:14:42 | Araq | and while strutils.toUpper only works for A-Z the unicode module has a version that "works" with unicode |
| 21:15:20 | tylere | It's kinda funny, in my American habits, by far the most common unicode chars I encounter are "pretty" quotes |
| 21:15:25 | tylere | e.g. from MS Word |
| 21:15:27 | Araq | but again, in my experience you need to pass the supposed natural language to the comparison function then |
| 21:15:34 | tylere | actual non-latin characters are fairly rare |
| 21:15:40 | Araq | so ... unicode.toUpper is worthless |
| 21:16:41 | Araq | this whole "ugh, Nimrod got unicode wrong" is based on ignorance. Everybody gets it "wrong" because it's impossible to get it right. |
| 21:16:50 | tylere | I understand |
| 21:17:22 | tylere | Most people don't even really grok the difference between unicode and an encoding |
| 21:19:19 | gradha | Araq: "ugh, Nimrod got unicode wrong"? |
| 21:19:45 | Araq | gradha: it's a common criticism |
| 21:19:48 | Araq | brb |
| 21:20:12 | gradha | hah, you got me there, as if Nimrod was commonly discussed |
| 21:20:55 | gradha | btw, I have trouble using the ! negation template inside iterators, is it just me or is this a known problem? |
| 21:21:37 | dom96 | which template is that? |
| 21:21:59 | gradha | isn't ! a template which expands to "not something"? |
| 21:22:19 | dom96 | I've never heard of it. |
| 21:22:26 | gradha | never mind, I'm going to write a small test case |
| 21:22:40 | dom96 | I use 'not' everywhere. |
| 21:22:58 | gradha | meh, that's like two chars more |
| 21:23:45 | gradha | wasn't aware that there was a separate doc builder |
| 21:24:40 | Araq | well "common" is relative :P |
| 21:27:44 | bastian_ | hey |
| 21:27:53 | gradha | bastian_: yo |
| 21:29:41 | bastian_ | couple of questions regarding sequences: are they allocated on the heap? how can they be resized (cf. realloc)? can I simply use mem |
| 21:30:03 | bastian_ | memcpy (copyMem) on the addr of a sequence? |
| 21:30:11 | Araq | hell no |
| 21:30:19 | Araq | use newSeq and add |
| 21:31:45 | bastian_ | is add automatically resizing it in larger chunks? |
| 21:31:50 | Araq | yes |
| 21:32:33 | bastian_ | nice. what about copyMem? |
| 21:32:57 | Araq | copyMem is a memcpy. so it's a low level operation and generally not necessary |
| 21:33:00 | bastian_ | i'd like to port a bitvector library |
| 21:33:06 | * | gradha notices less alcohol during coding would help to avoid facepalms |
| 21:33:10 | Araq | use seqs for that |
| 21:33:23 | Araq | gradha: there is no '!' operator in system.nim |
| 21:33:32 | gradha | Araq: yeay, "just" noticed |
| 21:35:50 | bastian_ | Araq: yeah, a seq of uint8 buckets |
| 21:36:12 | Araq | actually just use a TIntSet |
| 21:36:26 | Araq | it uses a bit vector under the hood |
| 21:36:41 | Araq | it's a sparse bit vector implementation |
| 21:38:17 | bastian_ | ah, nice. is it possible to use popcnt on the underlying data? |
| 21:38:17 | gradha | Araq: I was waiting for you to answer last post of http://forum.nimrod-code.org/t/194 |
| 21:38:28 | bastian_ | i'll have a look at it |
| 21:38:54 | Araq | bastian_: not yet. patches are welcome |
| 21:41:13 | Araq | gradha: sorry. does it work properly if you change it back to projectPath / genSubDir ? |
| 21:41:56 | gradha | yes |
| 21:43:15 | * | q66 joined #nimrod |
| 21:43:18 | bastian_ | Araq: looks interesting, but not quite what i'm looking for |
| 21:44:19 | Araq | bastian_: alright well it gives you a start anyway |
| 21:44:36 | bastian_ | Araq: yep, thanks a lot! |
| 21:45:02 | bastian_ | i'll def. play around with it the comming days |
| 21:47:16 | Araq | gradha: well please fix shortenDir then |
| 21:47:23 | Araq | it must not create full paths |
| 21:47:27 | Araq | and in fact |
| 21:47:53 | Araq | I noticed this bug before |
| 21:48:04 | gradha | in my case it's not generating a full path, but rather a wrong relative path |
| 21:48:35 | gradha | my question in the post is: what's the purpose of shortenDir? Can't fix it if I don't know the purpose of it |
| 21:48:52 | gradha | and don't understand what's to "shorten" in projectPath / genSubDir |
| 21:49:22 | Araq | ok well the purpose it to transform it into a relative path |
| 21:49:30 | Araq | because relative paths rule |
| 21:49:43 | Araq | you can easily emit them into a generated script |
| 21:49:49 | Araq | they make error messages shorter |
| 21:50:02 | Araq | you can move projects and stuff continues to work |
| 21:50:02 | gradha | relative to what? |
| 21:50:08 | gradha | current dir? project path? |
| 21:50:11 | Araq | relative to the project directory |
| 21:50:21 | Araq | current dir ain't good enough |
| 21:52:59 | gradha | currently shortenDir first tries to make a relative path to the app dir, what will break if that changes? |
| 21:53:27 | * | shodan45 quit (Read error: Connection reset by peer) |
| 21:53:55 | * | shodan45 joined #nimrod |
| 21:54:08 | Araq | I don't know. we'll see. :-) |
| 21:56:33 | gradha | another weird thing is shortenDir doesn't deal with windows drives, does it? |
| 21:56:45 | Araq | it does but implicitly |
| 21:57:38 | Araq | r"C:\data\bu" - r"C:\data" == "bu" |
| 21:57:46 | Araq | that's the idea anyway |
| 21:58:41 | gradha | ok, good night |
| 21:58:57 | * | shodan45 quit (Quit: Konversation terminated!) |
| 21:59:02 | Araq | good night |
| 21:59:12 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=2IzR_ClTE8Y again) |
| 22:00:53 | * | Jackneill quit (Remote host closed the connection) |
| 22:05:50 | * | webskipper quit (Ping timeout: 245 seconds) |
| 22:10:51 | * | shodan45 joined #nimrod |
| 22:14:39 | * | bdsatish joined #nimrod |
| 22:15:42 | Araq | hi bdsatish welcome |
| 22:16:18 | bdsatish | hi :) |
| 22:19:15 | * | brson quit (Ping timeout: 272 seconds) |
| 22:26:51 | * | bdsatish left #nimrod ("ERC Version 5.3 (IRC client for Emacs)") |
| 22:29:43 | * | DAddYE quit () |
| 22:29:55 | * | BitPuffin joined #nimrod |
| 22:46:29 | * | DAddYE joined #nimrod |
| 23:01:53 | * | OrionPK quit (Ping timeout: 250 seconds) |
| 23:16:13 | * | OrionPK joined #nimrod |
| 23:18:58 | * | Hannibal_Smith quit (Quit: Sto andando via) |
| 23:20:57 | C0C0 | how do I use shr on uint32? can I simply cast the uint32 to a int32 without change in behaviour? |
| 23:20:57 | * | DAddYE quit (Read error: Connection reset by peer) |
| 23:21:24 | * | DAddYE joined #nimrod |
| 23:23:13 | fowl | C0C0, import unsigned |
| 23:24:36 | C0C0 | coolt thx :) |
| 23:29:26 | * | anton2 quit (Quit: anton2) |
| 23:39:35 | fowl | np |
| 23:55:04 | Araq | good night guys |