00:09:28 | Araq | good night |
00:15:08 | * | adoniscik joined #nimrod |
00:19:41 | * | Jehan_ quit (Quit: Leaving) |
00:27:59 | * | clone1018_ quit (Remote host closed the connection) |
00:28:22 | * | adoniscik quit (Ping timeout: 240 seconds) |
00:28:27 | * | clone1018 joined #nimrod |
00:28:58 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
00:31:57 | * | Fx00F quit (Quit: leaving) |
00:34:53 | * | Matthias247 quit (Read error: Connection reset by peer) |
00:47:49 | * | boydgreenfield joined #nimrod |
00:54:10 | * | Jesin quit (Quit: Leaving) |
01:08:31 | * | goobles quit (Quit: Page closed) |
01:09:04 | * | goobles joined #nimrod |
01:26:00 | * | bjz joined #nimrod |
01:59:33 | * | vendethiel quit (Remote host closed the connection) |
01:59:50 | * | vendethiel joined #nimrod |
02:24:05 | flaviu | Can someone tag https://github.com/Araq/Nimrod/issues/1386 as RFC? |
02:28:49 | Varriount | flaviu: Your wish is my command. |
02:29:05 | Varriount | Hi vendethiel |
02:29:08 | flaviu | Thanks |
02:29:14 | * | gsingh93 joined #nimrod |
02:52:25 | goobles | nimroooood |
03:00:05 | * | Varriount gobbles up goobles greedily |
03:02:33 | goobles | is there any good docs on nimrods memory model/gc |
03:04:11 | flaviu | goobles: Not much, but http://nimrod-lang.org/gc.html |
03:07:09 | * | q66 quit (Quit: Leaving) |
03:42:09 | * | adoniscik joined #nimrod |
04:01:24 | * | johnsoft quit (Ping timeout: 250 seconds) |
04:02:06 | * | johnsoft joined #nimrod |
04:19:19 | * | kemet joined #nimrod |
04:20:51 | * | kemet quit (Client Quit) |
04:23:40 | goobles | is nimrod going for a global GC for entire program or seperate gc per task/thread? |
04:30:24 | Demos | per thread gc |
04:36:04 | * | saml_ joined #nimrod |
04:42:22 | * | flaviu quit (Ping timeout: 240 seconds) |
05:08:38 | * | Demos quit (Read error: Connection reset by peer) |
05:15:10 | * | boydgreenfield quit (Quit: boydgreenfield) |
05:53:18 | adoniscik | how can you get the base type of a sequence or array? type() returns array |
05:53:26 | adoniscik | I want the type of its elements |
05:54:31 | adoniscik | I guess I could use type(foo.low) |
06:21:37 | * | saml_ quit (Remote host closed the connection) |
06:26:47 | * | boydgreenfield joined #nimrod |
06:31:46 | * | goobles quit (Ping timeout: 246 seconds) |
06:38:35 | * | mwbrown quit (Ping timeout: 250 seconds) |
06:43:03 | fowl | type(foo[0]) |
07:00:50 | vendethiel | hi Varriount (?) |
07:05:31 | * | brson quit (Ping timeout: 256 seconds) |
07:33:58 | * | noam_ quit (Ping timeout: 240 seconds) |
07:35:33 | * | boydgreenfield quit (Quit: boydgreenfield) |
07:39:35 | * | kunev joined #nimrod |
07:39:58 | * | boydgreenfield joined #nimrod |
07:55:49 | * | boydgreenfield quit (Quit: boydgreenfield) |
08:04:01 | * | kunev quit (Quit: leaving) |
08:11:18 | * | Ven joined #nimrod |
08:22:10 | * | johnsoft quit (Ping timeout: 264 seconds) |
08:22:33 | * | johnsoft joined #nimrod |
08:23:43 | * | adoniscik quit (Ping timeout: 256 seconds) |
08:28:53 | * | Matthias247 joined #nimrod |
08:35:23 | * | Fr4n joined #nimrod |
08:35:46 | * | Fr4n is now known as Guest11193 |
08:36:09 | * | Guest11193 quit (Client Quit) |
08:36:26 | * | Francisco joined #nimrod |
09:17:52 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:19:35 | * | Ven joined #nimrod |
09:34:58 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:58:48 | * | Mat3 joined #nimrod |
09:58:53 | Mat3 | hello |
10:03:51 | * | io2 joined #nimrod |
10:03:53 | * | io2 quit (Changing host) |
10:03:53 | * | io2 joined #nimrod |
10:04:23 | * | io2 quit (Client Quit) |
10:12:34 | * | Mat3 quit (Quit: Verlassend) |
10:12:39 | * | BitPuffin quit (Ping timeout: 250 seconds) |
10:21:26 | * | johnsoft quit (Ping timeout: 250 seconds) |
10:22:10 | * | johnsoft joined #nimrod |
10:42:37 | dom96 | hi |
10:46:24 | * | io2 joined #nimrod |
11:37:23 | * | ARCADIVS quit (Quit: WeeChat 0.4.3) |
12:04:16 | * | q66 joined #nimrod |
12:04:59 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
12:07:11 | * | BitPuffin joined #nimrod |
12:08:55 | * | BitPuffin quit (Client Quit) |
12:23:26 | * | BitPuffin joined #nimrod |
12:28:31 | * | BitPuffin quit (Ping timeout: 256 seconds) |
12:33:33 | * | untitaker quit (Ping timeout: 240 seconds) |
12:39:27 | * | untitaker joined #nimrod |
12:44:54 | * | q66 quit (Remote host closed the connection) |
12:46:41 | * | q66 joined #nimrod |
12:51:29 | * | darkf quit (Quit: Leaving) |
13:05:47 | * | io2 joined #nimrod |
13:11:38 | * | Kos_ joined #nimrod |
13:14:48 | dom96 | hello Kos_, welcome. |
13:23:57 | Kos_ | Hello |
13:24:16 | Kos_ | I'm attempting to install Aporia on Windows |
13:24:45 | Kos_ | Is it meaningful option at all ? |
13:25:06 | Kos_ | Or it will go much smoother on Linux ? |
13:26:24 | Kos_ | Thanks in advance |
13:26:43 | * | q66 quit (Quit: Leaving) |
13:27:04 | dom96 | Kos_: Should be much easier on Linux. |
13:27:46 | Kos_ | as usual with ported software. |
13:28:57 | dom96 | You can try this on Windows: http://nimrod-lang.org/download/aporia-0.2.0.zip |
13:29:08 | dom96 | It's missing pcre.dll though |
13:29:13 | dom96 | I still need to fix that |
13:35:57 | * | q66 joined #nimrod |
13:37:41 | Kos_ | thank you |
13:41:07 | * | SnarlPatrick|2 joined #nimrod |
13:41:19 | * | SnarlPatrick|2 left #nimrod (#nimrod) |
13:53:04 | Kos_ | dom96 : Is that package with Aporia 32bit or 64bit ? |
13:53:13 | dom96 | 32 |
13:53:27 | Kos_ | Do you have 64 bit one ? |
13:54:08 | Kos_ | I can download 32bit nimrod actually |
13:55:27 | dom96 | You don't need 32 bit nimrod to use 32 bit Aporia |
13:55:42 | dom96 | But I suggest you use 32 bit nimrod anyway |
13:56:46 | Kos_ | Now it works, thanks |
13:59:39 | Kos_ | I needed 32 bit pcre.dll |
14:01:25 | Kos_ | Aporia started but fails to access nimrod.exe even started with administrator privilagies. Will better test it with Linux |
14:01:40 | dom96 | you need it in your PATH |
14:10:16 | Kos_ | BTW it was already there |
14:10:26 | Kos_ | it was installed using installer from site |
14:10:48 | Kos_ | thank you for answers |
14:10:53 | * | Kos_ quit (Quit: Page closed) |
14:11:25 | * | vbtt quit (Remote host closed the connection) |
14:11:57 | NimBot | Araq/Nimrod devel be616fc Dominik Picheta [+0 ±1 -0]: Fixes #1219. |
14:11:57 | NimBot | Araq/Nimrod devel 8968b51 Dominik Picheta [+0 ±3 -0]: Fixes #1065. |
14:25:17 | * | bjz quit (Ping timeout: 250 seconds) |
14:27:34 | * | eigenlicht_ quit (Quit: WeeChat 0.3.2) |
15:06:44 | * | kunev joined #nimrod |
15:09:00 | * | mwbrown joined #nimrod |
15:12:32 | * | Jehan_ joined #nimrod |
15:29:56 | * | Demos joined #nimrod |
15:32:43 | * | BitPuffin joined #nimrod |
15:40:38 | * | BitPuffin quit (Quit: See you on the dark side of the moon!) |
16:06:22 | * | BitPuffin joined #nimrod |
16:09:06 | * | q66_ joined #nimrod |
16:09:58 | * | q66 quit (Ping timeout: 240 seconds) |
16:18:23 | * | q66_ is now known as q66 |
16:40:54 | * | flaviu joined #nimrod |
16:42:22 | * | bjz joined #nimrod |
17:17:35 | * | Jesin joined #nimrod |
17:34:48 | * | Jesin quit (Quit: Leaving) |
17:39:10 | * | Jesin joined #nimrod |
18:10:36 | * | Ven joined #nimrod |
18:14:57 | * | Boscop quit (Read error: Connection reset by peer) |
18:19:04 | * | BitPuffin quit (Ping timeout: 260 seconds) |
18:20:42 | * | kunev quit (Ping timeout: 255 seconds) |
18:42:45 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:46:36 | * | Boscop joined #nimrod |
18:49:29 | * | bjz_ joined #nimrod |
18:52:05 | * | Ven joined #nimrod |
18:52:20 | * | shevy joined #nimrod |
18:53:37 | * | bjz_ quit (Ping timeout: 245 seconds) |
19:05:57 | * | noam joined #nimrod |
19:13:34 | * | johnsoft quit (Ping timeout: 250 seconds) |
19:14:12 | * | johnsoft joined #nimrod |
19:29:29 | * | kunev joined #nimrod |
19:40:12 | * | Trustable joined #nimrod |
19:44:50 | * | kunev quit (Ping timeout: 255 seconds) |
20:00:54 | * | Johz joined #nimrod |
20:06:45 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:08:11 | * | Ven joined #nimrod |
20:18:29 | * | rixx left #nimrod ("Foyfoy!") |
20:25:29 | Araq | ping def- |
20:25:34 | def- | hi Araq |
20:25:44 | Araq | wow that was quick |
20:25:59 | Araq | we need a link to your slides |
20:26:14 | def- | for? |
20:26:17 | dom96 | wikipedia |
20:27:10 | def- | Best I have is this: https://entropia.de/GPN14:Nimrod |
20:27:23 | Araq | is that a permanent link? |
20:27:41 | Araq | not that it matters much ... other wikipedia articles are full of dead links |
20:27:53 | def- | Apparently so |
20:28:01 | def- | The ones from the last years are still around at least |
20:28:44 | Araq | well we can host it ourselves and then it's a primary reference again and wikipedia doesn't accept us |
20:30:24 | Araq | there is a point where following mechanical rules produces undesired results and you have to use your brain. Too bad the guys writing an online encyclopaedia don't know this. |
20:31:27 | * | ics quit (Ping timeout: 245 seconds) |
20:33:39 | * | ics joined #nimrod |
20:35:03 | dom96 | We'll have a source in Bulgarian and German :D |
20:35:54 | flaviu | How about nimrod-by-example? Its a secondary source, and it looks more reputable than a random blog post |
20:37:13 | dom96 | flaviu: already added |
20:37:28 | dom96 | https://en.wikipedia.org/wiki/Draft:Nimrod_%28programming_language%29 |
20:38:11 | dom96 | I think i'm done |
20:38:31 | dom96 | def-: Is there a video for your talk? |
20:39:48 | def- | dom96: yes, but i wanted to wait until it's on youtube. seems to take them a bit longer this year |
20:40:07 | dom96 | def-: np |
20:40:36 | def- | It's in the big list at https://entropia.de/GPN14:Streams |
20:42:39 | dom96 | I really wish I could understand German lol |
20:43:44 | flaviu | dom96: Its easy! "nien" means "me" |
20:43:57 | flaviu | Or no |
20:44:02 | flaviu | or lines, IDK :P |
20:44:26 | def- | I would have held the talk in English |
20:44:32 | def- | but most talks seemed to be in German |
20:45:14 | dom96 | I have an excuse to learn German at least |
20:45:30 | dom96 | I really like your slides though, very nice job. |
20:45:43 | def- | Thanks, dom96 |
20:46:01 | flaviu | dom96: his slides are made with LaTeX :D |
20:48:26 | Matthias247 | as long as it's not in schwäbisch ;) |
20:49:36 | * | gsingh93 quit (Quit: Connection closed for inactivity) |
20:50:28 | dom96 | yay https://github.com/glfw/website/compare/56c919d77e03...29516872cb86 |
20:52:19 | dom96 | def-: I'm curious about the questions you got, can you translate some of them for me? |
20:52:36 | * | brson joined #nimrod |
20:52:47 | def- | dom96: I think I did that before, let me search irc log |
20:53:10 | def- | http://build.nimrod-lang.org/irclogs/14-07-2014.html |
20:53:43 | dom96 | oh thanks |
20:56:02 | Matthias247 | don't know what's so funny about the generated C code :) |
21:00:02 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:02:54 | * | Fx00F joined #nimrod |
21:03:06 | * | Mat3 joined #nimrod |
21:03:10 | Mat3 | hello |
21:03:19 | def- | hi Mat3 and Fx00F |
21:03:26 | Mat3 | hi def- |
21:04:15 | Mat3 | I have the following problem: |
21:04:27 | Fx00F | hi |
21:05:37 | Fx00F | var u:auto = 5 <--- internal error |
21:05:39 | Mat3 | in one module an exported string: var tIlOpcode* = array [tIlOpcodeLen, uInt8] is defined |
21:06:23 | def- | Fx00F: if you want an auto type just write "var u = 5" |
21:07:11 | Mat3 | in another module the global string is used as parameter for a procedure: poke[uInt8] (o, o.iCode, aIlOpcode[i] |
21:07:14 | dom96 | Fx00F: report that on github please |
21:07:23 | Mat3 | +) = |
21:08:00 | Fx00F | dom96: hmm |
21:08:35 | Jehan_ | Fx00F: auto is used for implicit generics, should probably result in an error when used with `var`. |
21:09:18 | Mat3 | then compilation fails with error message: Error: conversion from seq[uint8] to uint8 is invalid |
21:09:57 | Mat3 | I doubt this to be incorrect as long as arrays are handled differently from sequences |
21:10:12 | def- | Mat3: i don't see where you're using a seq |
21:11:08 | Jehan_ | Mat3: Not sure about the context. What is "the global string", what are o.iCode, and allOpcode[i]? |
21:11:28 | * | Trustable quit (Quit: Leaving) |
21:11:37 | Mat3 | aIlOpcode is of type string |
21:12:11 | * | Johz quit (Ping timeout: 250 seconds) |
21:12:12 | Mat3 | o.iCode is an index into a buffer for generated native code |
21:13:07 | Jehan_ | Mat3: What I'm trying to say is that there's too little information to analyze the error message. |
21:13:08 | Mat3 | sorry I mean aIlOpcode is of type array[0..cNatCodeLen, uInt8] |
21:14:33 | Jehan_ | What's the exact type signature of poke, what's the exact location of the error? |
21:14:55 | Mat3 | the porblem is simply that an array element is accessed as parameter and the compiler return a error message showing that this element is of type: seq[uint8] |
21:15:17 | Mat3 | instead of uInt8 |
21:15:27 | Jehan_ | Are you sure that it's that? |
21:15:35 | Mat3 | yes |
21:16:01 | Mat3 | var tIlOpcode* = array [tIlOpcodeLen, uInt8] |
21:16:19 | Jehan_ | Even so, there's little anyone can do (including identifying a compiler bug) without a way to reproduce or at least understand the circumstances. |
21:17:49 | * | johnsoft quit (Ping timeout: 250 seconds) |
21:17:56 | Jehan_ | If I try to pass an element of array[0..something,uint8] to a proc expecting a uint8 parameter, it works. |
21:18:04 | Jehan_ | So, clearly there's something else going on. |
21:18:05 | * | johnsoft joined #nimrod |
21:18:12 | flaviu | Jehan_: I've heard that you're familiar with hashing, do you think I should expose the hash construction as an API, or do it like std::hash? |
21:18:37 | Jehan_ | flaviu: Umm, what's the context for that question? What hash construction? |
21:18:56 | flaviu | https://github.com/Araq/Nimrod/issues/1386 |
21:19:06 | Mat3 | Jehan_: yes of course |
21:20:08 | flaviu | Basically, the hashes API isn't as general as it needs to be to accommodate all/most hash functions |
21:22:10 | Jehan_ | flaviu: I take it that's for hash functions that have to store extraneous intermediate data aside from the hash result? |
21:22:51 | flaviu | Yes, exactly. |
21:23:38 | flaviu | Like siphash is internally int256, but outputs a int64 value |
21:25:44 | Jehan_ | I don't see why you wouldn't expose the API, to be honest. |
21:26:01 | Jehan_ | What I'd be more concerned about is that you're unlikely to cover all use cases. |
21:28:31 | Jehan_ | Hashing of data structures represented as trees or DAGs may be concerned about, say, having a hash function that's commutative (i.e. where you need hash(Tree(a, b)) == hash(Tree(b, a))) or can be cached inside individual nodes. |
21:30:30 | Jehan_ | Or, for example, make sure that Tree(a, Tree(b,c)) is unlikely to hash to the same thing as Tree(Tree(a,b),c), which is what you can easily get by accident if you do a left-to-right linearization. |
21:30:42 | flaviu | The main issue I see with that API is 32 `int` size. Some hash functions need 64bit inputs, others 32 bit. |
21:30:56 | flaviu | s/32 `// |
21:31:25 | flaviu | Hash functions that need 64 bit input on 32 bit archetuctures will have to do buffering |
21:32:25 | * | Jessin joined #nimrod |
21:32:57 | * | Jesin quit (Read error: Connection reset by peer) |
21:35:17 | Jehan_ | Well, the easy way to do it portably is to use int64 and strip it down to int size on 32-bit architectures at the end. |
21:35:23 | Jehan_ | Of course, portable != fast. |
21:36:31 | Jehan_ | The alternative is to have two different implementations, one for 32-bit and one for 64-bit systems. |
21:39:15 | Araq | Mat3: var tIlOpcode* = array [tIlOpcodeLen, uInt8] # problem right here |
21:39:33 | Araq | var tIlOpcode*: array [tIlOpcodeLen, uInt8] # fix |
21:39:48 | Araq | and yes, I'll get rid of this behaviour |
21:39:49 | Mat3 | hello Araq, thanks |
21:41:03 | flaviu | I could make it a int64 and then make the proc inline. That way the optimizer can take care of it maybe even make it a no-op. Two implementations is too much complexity I think. |
21:41:30 | Araq | what's your problem with hash implementations? |
21:41:45 | flaviu | It can't be swapped out for any other hash implmentation |
21:41:47 | Araq | doesn't hashes.nim teach you of how to design it? ;-) |
21:42:09 | flaviu | hashes.nim is incomplete |
21:42:24 | Araq | and yet it teaches you great design ;-) |
21:42:29 | flaviu | But, yes, I'm basing it on the design of hashes.nim, its very close to what is needed |
21:42:40 | * | saml_ joined #nimrod |
21:42:43 | Araq | it's a very simple problem you have here |
21:43:04 | Araq | you can either allow for runtime dispatching and then everybody pays the price always and the bloat |
21:43:24 | flaviu | I'm making sure everything can be inlined |
21:43:32 | Araq | or you simply keep the interfaces the same and let the programmer pick a particular implementation with import |
21:43:46 | flaviu | Thats exactly what I'm doing. |
21:43:50 | Araq | great |
21:44:16 | flaviu | I envision hashes.nim being nothing more than `when arch64: include thisHash else: include otherHash` |
21:44:34 | Araq | envision a new module name please |
21:45:05 | flaviu | sure, but why? |
21:45:23 | Araq | because lots of code depends on hashes.nim already |
21:45:50 | Araq | and getting version 1 out is MUCH more important than constant bike shedding |
21:46:11 | flaviu | I'm actually hitting across a real problem where hashes.nim's api is inadequate |
21:47:28 | Mat3 | Araq: ok, next problem |
21:47:43 | Mat3 | the code: |
21:47:44 | Mat3 | for i in countup (0, len): |
21:47:44 | Mat3 | poke[uInt8] (o, o.iCode, aIlOpcode[i]) |
21:48:10 | Mat3 | gives me: Error: for a 'var' type a variable needs to be passed |
21:48:40 | Jehan_ | flaviu: You can simply import your own implementation to substitute it? |
21:49:27 | flaviu | Yes, I can |
21:49:43 | flaviu | Thats what I'll end up doing anyway |
21:52:02 | Mat3 | defination of poke is: |
21:52:11 | Mat3 | proc poke[T] (o: var tAvmCompiler, ofs: int, v: T) = |
21:52:11 | Mat3 | if ofs > cSaiwaAvmCode - cSaiwaRedZone: saiwaError (33) |
21:52:11 | Mat3 | cast[ptr array[0..cSaiwaAvmCode, T]](o.pCode)[ofs] = v |
21:54:03 | Araq | Mat3: well 'o' might not be modifyable |
21:57:55 | Mat3 | its an object |
21:58:24 | def- | Mat3: maybe you wrote "let o = ..." instead of "var o = ..." |
21:58:25 | Araq | proc foo(o: tAvmCompiler) # o must not be modified |
21:58:36 | Araq | const o = ... # o must not be modified |
21:58:45 | Araq | let o = ... # o must not be modified |
22:00:51 | Mat3 | thanks, get the error |
22:02:05 | Mat3 | (forgot a 'var' in the parameter list of the callee) |
22:10:42 | Mat3 | ciao |
22:10:45 | * | Mat3 quit (Quit: Verlassend) |
22:23:01 | * | boydgreenfield joined #nimrod |
22:48:50 | * | Jehan_ quit (Quit: Leaving) |
22:52:04 | NimBot | nimrod-code/packages master b285d01 Johz [+0 ±1 -0]: Add appdirs to package.json |
22:52:04 | NimBot | nimrod-code/packages master 96c2f4b Johz [+0 ±1 -0]: Wrong Github... |
22:52:04 | NimBot | nimrod-code/packages master 8fb7187 Dominik Picheta [+0 ±1 -0]: Merge pull request #71 from MrJohz/patch-1... 2 more lines |
23:04:59 | * | darkf joined #nimrod |
23:05:26 | * | gsingh93 joined #nimrod |
23:27:03 | * | bjz quit (Ping timeout: 240 seconds) |
23:46:52 | * | fowl quit (Ping timeout: 245 seconds) |
23:49:41 | * | boydgreenfield quit (Quit: boydgreenfield) |
23:54:15 | * | Fx00F quit (Quit: leaving) |