<< 24-02-2014 >>

00:03:47*ics joined #nimrod
00:13:30*carum quit (Remote host closed the connection)
00:13:57*carum joined #nimrod
00:18:39*carum quit (Ping timeout: 252 seconds)
00:19:57VarriountI like name/style refactoring. It's relaxing.
00:25:06*carum joined #nimrod
00:30:53NimBotAraq/Nimrod vm2_2 983fdb7 Araq [+0 ±10 -0]: new VM is getting stable
00:33:52*EXetoC quit (Ping timeout: 264 seconds)
00:37:40*EXetoC joined #nimrod
00:39:52*ics quit (Ping timeout: 264 seconds)
00:40:13skrylarVarriount: its pretty easy to do with vim and tpope's subvert addon
00:40:21skrylarif all you are doing is renaming
00:43:13*io2 quit ()
00:48:55*ddl_smurf quit (Quit: ddl_smurf)
00:49:38*EXetoC quit (*.net *.split)
00:49:40*OrionPK quit (*.net *.split)
00:49:40*Trixar_za quit (*.net *.split)
00:49:42*renesac quit (*.net *.split)
00:49:43*rixx quit (*.net *.split)
00:50:27*Trixar_za joined #nimrod
00:50:27*renesac joined #nimrod
00:50:27*rixx joined #nimrod
00:53:16*EXetoC joined #nimrod
01:04:51VarriountAraq: Why do strings values returned by the json module have quotes?
01:07:27EXetoCjust access the field directly
01:08:33VarriountEXetoC: What do you mean?
01:09:01EXetoCyou mean when calling `$`? it does give you the json representation
01:09:32VarriountI do something like fooNode["name"] and get ""Foo""
01:10:28VarriountI spent 10 minutes trying to figure out why a string.startsWith call was always returning false.
01:13:38EXetoCso you get a node, and then `$` is invoked. it gives you the JSON representation, so it's consistent
01:15:06EXetoCbut you can access the str field if you want
01:19:41EXetoCyou don't do print-debugging? :p
01:19:59VarriountEXetoC: I didn't notice the quotes
01:20:14EXetoCright
01:20:32VarriountAraq: I have a mini-program which downloads and builds packages using babel. I'll be able to integrate it with babel later this week.
01:59:04*carum quit ()
02:19:29*brson quit (Ping timeout: 240 seconds)
03:19:55*brson joined #nimrod
03:20:12*brson quit (Client Quit)
03:20:26*brson joined #nimrod
03:33:41*aftersha_ joined #nimrod
03:52:06*aftersha_ quit (Quit: Computer has gone to sleep.)
03:57:58*darkf_ joined #nimrod
03:59:13*darkf quit (Disconnected by services)
03:59:14*darkf_ is now known as darkf
04:36:29*BitPuffi1 quit (Ping timeout: 246 seconds)
05:06:12*OrionPK joined #nimrod
05:41:07*Demos quit (Read error: Connection reset by peer)
05:43:29*r0b2 quit (Ping timeout: 240 seconds)
05:50:20*carum joined #nimrod
05:55:31*skyfex_ quit (Quit: Computer has gone to sleep.)
05:57:41*Zuchto_ is now known as Zuchto
06:29:41*r0b2 joined #nimrod
06:35:59*r0b2 quit (Ping timeout: 240 seconds)
06:59:08*carum quit (Remote host closed the connection)
06:59:42*carum joined #nimrod
07:00:27*brson quit (Quit: leaving)
07:01:00*skyfex_ joined #nimrod
07:04:41*carum quit (Ping timeout: 252 seconds)
07:12:49*isenmann joined #nimrod
07:56:24*ddl_smurf joined #nimrod
08:01:15*Arcanum_za joined #nimrod
08:03:27*OrionPK quit (*.net *.split)
08:03:28*EXetoC quit (*.net *.split)
08:03:28*Trixar_za quit (*.net *.split)
08:03:29*renesac quit (*.net *.split)
08:03:30*rixx quit (*.net *.split)
08:09:27*renesac joined #nimrod
08:11:40*rixx joined #nimrod
08:15:40*EXetoC joined #nimrod
08:46:05*zahary__ is now known as zahary_
08:53:11*jita joined #nimrod
08:53:25*jita left #nimrod (#nimrod)
09:04:12*ddl_smurf_ joined #nimrod
09:07:09*ddl_smurf quit (Ping timeout: 265 seconds)
09:07:09*ddl_smurf_ is now known as ddl_smurf
09:32:50*CarpNet joined #nimrod
09:44:02*io2 joined #nimrod
09:59:57*JStoker quit (Excess Flood)
10:01:18*JStoker joined #nimrod
10:08:15*ddl_smurf_ joined #nimrod
10:09:29*ddl_smurf quit (Ping timeout: 240 seconds)
10:09:29*ddl_smurf_ is now known as ddl_smurf
10:51:47*BitPuffi1 joined #nimrod
10:58:07*darkf_ joined #nimrod
11:01:42*darkf quit (Ping timeout: 265 seconds)
11:03:35*zielmicha1 quit (Ping timeout: 378 seconds)
11:04:27*JStoker quit (Excess Flood)
11:05:13*zielmicha1_ joined #nimrod
11:06:57*JStoker joined #nimrod
11:17:44*Zuchto quit (Ping timeout: 469 seconds)
11:18:21*Zuchto joined #nimrod
11:20:00*BitPuffi1 quit (Ping timeout: 240 seconds)
11:24:41*darkf_ is now known as darkf
12:14:46*Mat3 joined #nimrod
12:14:48Mat3hello
12:15:01Araqhi Mat3
12:15:59Mat3hi Araq
12:17:55*psquid joined #nimrod
12:19:11*Guest2317 quit (Ping timeout: 246 seconds)
12:21:33*BitPuffi1 joined #nimrod
12:33:02*Mat3 found the termcap library not well designed
12:42:55AraqMat3: I just fixed the last showstopper bugs for vm2 :-)
12:45:00Mat3great !
12:46:01BitPuffi1Araq: w00000000000000000000007
12:46:19Araqhad to rework how registers are stored, but it should work now and be sligthly faster too
12:46:21Mat3so I can now now start some threading benchmarking?
12:47:15AraqBitPuffi1: don't worry there are quire some showstopper bugs left and dom96 doesn't want to release before the async io is ready
12:49:24BitPuffi1Araq: well at least it's cool that the VM going stable
12:52:44Mat3by the way, how are registers now stored ?
12:53:16Araqcheck out the vm2_2 branch, Mat3
12:53:53BitPuffi1Araq: man I still want the capability to invoke the compiler easily in code
12:54:04Araq TRegisterKind = enum
12:54:06Araq rkNone, rkNode, rkInt, rkFloat, rkRegisterAddr, rkNodeAddr
12:54:07Araq TRegister = object # with a custom mark proc, we could use the same
12:54:09Araq # data representation as LuaJit (tagged NaNs).
12:54:10Araq case kind: TRegisterKind
12:54:12Araq of rkNone: nil
12:54:13Araq of rkInt: intVal: BiggestInt
12:54:15Araq of rkFloat: floatVal: BiggestFloat
12:54:16Araq of rkNode: node: PNode
12:54:18Araq of rkRegisterAddr: regAddr: ptr TRegister
12:54:19Araq of rkNodeAddr: nodeAddr: ptr PNode
12:54:46Araq--> 16 bytes, but it's very hard to do better and keep the memory safety
12:56:07Araqand since I already had to *learn* how to debug it, I can't resign memory safety
12:56:42BitPuffi1use a pastebin pls
12:56:45BitPuffi1;D
12:57:00Mat3Araq: looks good
12:57:39AraqBitPuffi1: quod licet Iovi, non licet bovi
12:57:52BitPuffi1Araq: are you speaking latin to me now?
12:58:12Araqita est
12:58:20BitPuffi1or italian
12:58:22BitPuffi1same thing
12:58:54BitPuffi1well it was latin
12:59:01BitPuffi1just that google wanted it to be italian
12:59:02BitPuffi1What is legitimate for Jove (Jupiter), is not legitimate for the ox
12:59:56Araqor in german if you prefer: wenn zwei das gleiche machen, ist es noch lange nicht dasselbe
13:03:08BitPuffi1Araq: when two people do the same it is far from the same?
13:03:18*BitPuffi1 is now known as BitPuffin
13:04:01BitPuffinAraq: I humbly disagree
13:04:07Araqlol I guess it can't be translated into english
13:04:08BitPuffinfrom now on my code will all be pasted in irc :P
13:04:25AraqBitPuffin: don't you dare. I'll call dom96 then
13:04:34BitPuffinoh snap diddely doodely
13:04:42BitPuffinseriously though
13:04:52*Araq notes he never ever used his admin rights and doesn't even remember how to activate them
13:04:54BitPuffinso much potential with the VM if you can then also invoke the compiler
13:05:02BitPuffinhahaha
13:05:24BitPuffinbecause then I could implement seamless code reloading for my game dev api thing I wanna make for nimrod
13:05:40Araqwhat's wrong with 'gorge'?
13:05:54BitPuffinso it could run the new code in the vm while it compiles
13:06:02BitPuffinwhat the actual fuck is gorge
13:06:26Araqalso known as 'staticExec'
13:06:52BitPuffindoes that actually compile it?
13:07:12BitPuffinand also I want to be able to create dynamic libs on the fly
13:07:38Araqno but creating a command line like "nimrod c --app:lib foo" shouldn't be too hard
13:07:59BitPuffinyeah but I mean in a way that the compiler is embedded in the executable
13:08:06BitPuffinso that you are not dependent on the system
13:08:07BitPuffinhaha
13:08:23Araqimport compiler/ast, compiler/eval then
13:08:27BitPuffinyeah exactly
13:08:41BitPuffinbut there is no easy way at the moment to call it on a file
13:08:47BitPuffinit isn't much to add I guess
13:09:08Araqbut it still calls the external C compiler, so embedding the nimrod compiler doesn't gain you much ?
13:09:17BitPuffinhmm shit
13:09:20BitPuffinguess you are right
13:09:24BitPuffinwell
13:09:40BitPuffinat least it would be sweet whenever we have a non-c backend :P
13:09:56BitPuffinin ~10 years or so
13:10:19Mat3I'm working on (slowly because of sparse free time at moment)
13:11:11BitPuffinoh, as a part of the regular compiler?
13:11:14BitPuffinthought you were making your own
13:12:07Mat3no, but coding a backend will be easy
13:12:20BitPuffinoighty matie
13:12:46AraqMat3: we will see about this :P though native code looks easier than bytecode
13:13:44Araqping zahary1, zahary_
13:14:16BitPuffinping all the zaharies
13:14:19BitPuffinwe need a bot for that
13:15:12Araqor zahary himself should become a bot
13:15:23Mat3Araq: For the purpose of static code generation surprisly libJIT would be a good solution
13:15:24Araqthat would help even more
13:15:55AraqMat3: perhaps, but things are more fun to code from scratch
13:16:34Araqas a nice side effect you don't have to deal with C's weird notion of correctness ( if foo_result != E_NO_MEM_LEFT )
13:16:46Mat3right
13:17:57Araq(what do you mean, the language segfaults on a stack overflow and encourages stack allocations and yet the libraries think the return value of 'malloc' matters?!)
13:19:39Mat3spontan, I suspect the pointer is only checked aqainst NIL
13:30:48*noam_ joined #nimrod
13:32:09*io2_ joined #nimrod
13:33:26*io2 quit (Disconnected by services)
13:33:30*io2_ is now known as io2
13:33:34*silven_ joined #nimrod
13:34:16*r0b2 joined #nimrod
13:35:39*tumak_ joined #nimrod
13:38:09*io2_ joined #nimrod
13:38:59*phI||Ip_ joined #nimrod
13:39:00*io2 quit (Excess Flood)
13:40:37*noam quit (*.net *.split)
13:40:41*phI||Ip quit (*.net *.split)
13:40:42*silven quit (*.net *.split)
13:40:44*Araq quit (*.net *.split)
13:40:47*comex quit (*.net *.split)
13:40:48*tumak quit (*.net *.split)
13:40:54*io2_ is now known as io2
13:44:49*JStoker quit (Excess Flood)
13:46:05*Araq joined #nimrod
13:46:28*comex joined #nimrod
13:59:59*darkf quit (Quit: Leaving)
14:00:23*zielmicha1_ is now known as zielmicha
14:07:55zahary_pong Araq
14:13:03BitPuffinpang!
14:14:42*sale4one joined #nimrod
14:24:00*OrionPK joined #nimrod
14:26:23OrionPKhm
14:26:30OrionPKfreenode keeps kicking me off
14:26:39BitPuffinOrionPK: freenode hates you
14:27:05OrionPKyep
14:27:47*BitPuffin feels like improving the fucking dom module
14:27:48OrionPKI'll eventually update ircfamiliar to auto reconnect, it's on my list of things ;P
14:27:59OrionPKthe dom module is pretty out of date
14:28:07BitPuffinyeah
14:28:12OrionPKdoesnt even have a console
14:28:18BitPuffinwould be cool to have my javascript for my website written in nimrod
14:29:00BitPuffinthe annoying thing is that what should we do with like canvas and stuff
14:29:24BitPuffinwhen you set a context for canvas you do it with a string, but in nimrod we can't determine which kind of object to return
14:29:37BitPuffinbased on a string
14:29:41BitPuffincan we?
14:29:50BitPuffinI guess maybe with term rewriting macros or something
14:30:20EXetoCvariants?
14:31:25BitPuffinhrm
14:31:26OrionPKwell
14:31:33BitPuffinwell no
14:31:34OrionPKwe should use delegators if possible
14:31:39BitPuffinbecause it can only be biding code
14:31:40BitPuffinyeah I guess
14:31:52BitPuffinbinding
14:32:01BitPuffinor ah
14:32:06BitPuffinyeah I guess maybe it could work
14:34:40*sale4one left #nimrod (#nimrod)
14:55:07*sale4one joined #nimrod
15:03:54Mat3ciao
15:04:02*Mat3 quit (Quit: Verlassend)
15:07:01*sale4one quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
15:07:15*vendethiel quit (Ping timeout: 265 seconds)
15:07:52*vendethiel joined #nimrod
15:08:03*sale4one joined #nimrod
15:12:04*io2 quit ()
15:27:33*Endy joined #nimrod
15:34:23Araqzahary_: tests/manyloc/keineschweine doesn't compile anymore due to a regression. proc foo[T: int|int32](x: T) # seems to match any T now
15:36:31*charlie joined #nimrod
15:37:20Araqhi charlie welcome
15:40:49*Arcanum_za is now known as Trixar_za
15:42:57*charlie is now known as Demos
15:43:04Demosderp
15:43:27Demoshello :D
15:43:39Discolodadarp
15:43:44Trixar_zapred
15:44:00Trixar_zaprad
15:54:25fowlAraq, theres an issue for that
15:54:47fowlhttps://github.com/Araq/Nimrod/issues/907
15:57:52Araqfowl: thanks, I made it a showstopper
16:07:01*ddl_smurf quit (Quit: ddl_smurf)
16:29:59*BitPuffin quit (Ping timeout: 240 seconds)
16:45:31dom96Impressed to see Nimrod in this list: https://news.ycombinator.com/item?id=7291237
16:46:31dom96Surprised D isn't in that list.
16:56:50*Demos quit (Ping timeout: 281 seconds)
16:57:17*[1]Endy joined #nimrod
17:00:12*rixx quit (*.net *.split)
17:00:13*Varriount quit (*.net *.split)
17:00:13*eigenlicht quit (*.net *.split)
17:00:14*cark quit (*.net *.split)
17:00:15*betawaffle quit (*.net *.split)
17:00:15*iNode001 quit (*.net *.split)
17:00:19*OrionPK quit (*.net *.split)
17:00:22*phI||Ip_ quit (*.net *.split)
17:00:23*silven_ quit (*.net *.split)
17:00:26*CarpNet quit (*.net *.split)
17:00:28*skyfex_ quit (*.net *.split)
17:00:31*psquid quit (*.net *.split)
17:00:33*zielmicha quit (*.net *.split)
17:01:04*Endy quit (Ping timeout: 252 seconds)
17:01:04*[1]Endy is now known as Endy
17:05:54*psquid joined #nimrod
17:05:54*zielmicha joined #nimrod
17:06:03*OrionPK joined #nimrod
17:06:03*phI||Ip_ joined #nimrod
17:06:03*silven_ joined #nimrod
17:06:03*CarpNet joined #nimrod
17:06:03*skyfex_ joined #nimrod
17:06:30*betawaffle joined #nimrod
17:10:26*Araq quit (Ping timeout: 264 seconds)
17:13:24skrylarLisp!
17:20:38*[1]Endy joined #nimrod
17:20:48*Araq_bnc joined #nimrod
17:22:31*Endy quit (Ping timeout: 252 seconds)
17:22:31*[1]Endy is now known as Endy
17:31:52*BitPuffin joined #nimrod
17:37:55*Endy quit (Ping timeout: 252 seconds)
17:44:16*aftershave_ is now known as 5EXAAMAAB
17:44:28*Endy joined #nimrod
17:44:28*aftershave_ joined #nimrod
17:44:28*rixx joined #nimrod
17:44:28*Varriount joined #nimrod
17:44:28*eigenlicht joined #nimrod
17:44:28*cark joined #nimrod
17:44:28*iNode001 joined #nimrod
17:51:37*rixx_weechat joined #nimrod
17:52:20*rixx quit (Write error: Broken pipe)
17:55:39*[1]Endy joined #nimrod
17:58:59*Endy quit (Ping timeout: 240 seconds)
18:03:29*[1]Endy is now known as Endy
18:03:46*Matthias247 joined #nimrod
18:04:06*carum joined #nimrod
18:06:31*nande joined #nimrod
18:09:35dom96Less than an hour until GSoC orgs are announced :O
18:13:11*DAddYE joined #nimrod
18:13:36*brson joined #nimrod
18:15:22*[1]Endy joined #nimrod
18:18:59*Endy quit (Ping timeout: 245 seconds)
18:18:59*[1]Endy is now known as Endy
18:31:16*[1]Endy joined #nimrod
18:36:03*skrylar ponders whether to make this gap buffer unicode-safe or get text widgets working
18:43:13*sale4one quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
18:43:33*nande quit (Remote host closed the connection)
18:45:22*Endy quit (Ping timeout: 289 seconds)
18:45:22*[1]Endy is now known as Endy
18:46:10*[1]Endy joined #nimrod
18:46:25*nande joined #nimrod
18:49:00*askatasuna joined #nimrod
18:49:36*Endy quit (Ping timeout: 240 seconds)
18:49:37*[1]Endy is now known as Endy
18:50:22reactormonkdom96, let's see if we get through ;-)
18:50:31dom96Already got the email.
18:50:36dom96We didn't :\
18:50:53reactormonkduh
18:50:57reactormonkany reasons why?
18:51:20reactormonknot googly enough?
18:51:21dom96They will give feedback on Friday
18:52:23*carum quit (Remote host closed the connection)
18:55:56dom96But here is the list anyway: http://www.google-melange.com/gsoc/org/list/public/google/gsoc2014
19:04:20skrylarprobably because you don't have a large enough corporate presense and also because "nimrod = word for stupid" in the USA
19:04:41skrylarthey rejected the "Buzztard" tracker because it had 'tard' in the name
19:05:17dom96Well i'm annoyed. Julia got accepted.
19:05:43NimBotnimrod-code/packages master 72c1562 charlie barto [+0 ±1 -0]: added nimlibpng
19:05:43NimBotnimrod-code/packages master 07b2fbc charlie barto [+0 ±1 -0]: changed git url from ssh to http
19:05:43NimBotnimrod-code/packages master ff08c5d Dominik Picheta [+0 ±1 -0]: Merge pull request #47 from barcharcraz/master... 2 more lines
19:06:20skrylardom96: not surprised; i had to go look up what julia actually is
19:06:41*[1]Endy joined #nimrod
19:06:49skrylar"Designed for Parallelism and Cloud Computing" or basically, "this would be great for google to snarf and use internally"
19:07:17dom96oh well. Life can't be this easy :P
19:07:27skrylarmeh, i understand the annoyance
19:07:40skrylarI just also understand Google isn't really doing it because they love OSS :)
19:08:29skrylarthere was a catfight about Google actively rejecting projects right to use the AGPL on Google Code, which lead to accusations of Google only being interested in that which they can steal for internal use and not really being part of the OSS spirit
19:09:43*Endy quit (Ping timeout: 272 seconds)
19:09:44*[1]Endy is now known as Endy
19:10:11skrylarNimrod is basically competing with Go, and they don't really need that
19:12:27dom96:(
19:12:59*ddl_smurf joined #nimrod
19:13:12skrylarjulia looks like a data miner's dream
19:13:13*Araq_bnc is now known as Araq
19:13:28dom96Araq: We got rejected :(
19:14:30dom96bbl
19:15:01Araqdom96: ok, never mind
19:15:40Matthias247skrylar: would also have been my dream 6 years ago when I was doing signal processing (with matlab)
19:16:16skrylarmy bet is still them complaining about the name
19:17:11Matthias247I would guess it was because they chose the more well known projects
19:17:35skrylarWell Buzztard was also unheard of several years ago, and the reason they were rejected was name paranoia
19:18:29Matthias247but I'm sure it has no technical reasons
19:18:33Matthias247only soft facts
19:18:39skrylarhttp://en.wikipedia.org/wiki/Buzztrax "In 2013 the project was renamed to Buzztrax after Google rejected the project for its Summer of Code programm due to the name.[2]"
19:18:51skrylar(would have given a more direct line but buzztrax.org is broken on my machine right now)
19:19:44*ddl_smurf quit (Quit: ddl_smurf)
19:20:15reactormonkAraq, if they say it's the name, will you bend?
19:20:41AraqI've already registered nim-lang.org
19:21:48reactormonkand linked it to nimrod-lang.org ?
19:22:15Araqnot yet
19:22:29skrylari kind of think its sad when people like google act as name police
19:23:05reactormonkwith great power comes great political correctness
19:23:09AraqI think it's cool. I especially like Facebook's new approach to sex.
19:23:17reactormonkAraq, link?
19:23:37skrylarLinus got away with naming his version controller after stupid people :)
19:24:58*io2 joined #nimrod
19:25:05Araqreactormonk: IF I rename the language, I'll do so for version 1 anyway
19:25:33skrylarif you rename it, you just have to rename the stdlib to rod
19:25:33skrylarlol
19:26:35*Varriount|Mobile joined #nimrod
19:26:43Varriount|MobileHi guys
19:27:16*[1]Endy joined #nimrod
19:29:01NimBotAraq/Nimrod devel 563ebd9 Michał Zieliński [+0 ±1 -0]: osproc: MacOSX workaround for lack of execvpe
19:29:01NimBotAraq/Nimrod devel b376f8b Michał Zieliński [+0 ±1 -0]: osproc: MacOSX fix - if -> when
19:29:01NimBotAraq/Nimrod devel b156ace Andreas Rumpf [+0 ±1 -0]: Merge pull request #957 from zielmicha/macosx-fix... 2 more lines
19:29:26reactormonkdom96, what to do with the wiki page?
19:29:56*aftershave_ quit (Quit: Computer has gone to sleep.)
19:30:14*Endy quit (Ping timeout: 264 seconds)
19:30:14*[1]Endy is now known as Endy
19:30:27Araqreactormonk: rename it to "list of projects for people who have what it takes"
19:30:53Araqor maybe just "do you have what it takes?"
19:31:18reactormonkAraq, a bit more functional.
19:31:19*aftershave_ joined #nimrod
19:32:33*[1]Endy joined #nimrod
19:33:31*nande quit (Remote host closed the connection)
19:35:38*Endy quit (Ping timeout: 264 seconds)
19:35:38*[1]Endy is now known as Endy
19:40:03Varriount|MobileSorry about the GSoC response :(
19:40:19*rixx_weechat is now known as rixx
19:44:16Varriount|Mobiledom96: Fix babel's path command, pretty please
19:46:32*ddl_smurf joined #nimrod
19:48:00Araqno, fix it quickly, not pretty
19:48:34*skrylar grumbles about 'nimrod doc' still making empty files
19:51:37Araqskrylar: "nimrod doc2" tends to work better
19:52:03skrylarAraq: doc2 gives me an ICE
19:53:05*[1]Endy joined #nimrod
19:53:30Araqskrylar: some people say bugs get fixed if you report them
19:54:02skrylarI'm pretty sure I already mentioned doc/doc2 not working
19:56:07EXetoCin the issue tracker? it's hard to keep track of everything in ones head
19:56:50skrylarEXetoC: well usually i come in here and say "hey it exploded when I [..] do you want test code?" and someone says "we know about that already"
19:56:54*ddl_smurf quit (Quit: ddl_smurf)
19:56:55skrylarso i've never had to *go* to the issue tracker yet
19:57:05Araqwell now you do
19:57:12Araqcongratulations
19:57:14*Endy quit (Ping timeout: 264 seconds)
19:57:14*[1]Endy is now known as Endy
19:57:24*Varriount|Mobile throws glitter into the air
19:57:45skyfex_Araq: I'm toying with the idea of creating a backend for Nimrod to target ZPU (a tiny stack based 32-bit CPU with 8-bit instruction width).. I want to push for using that ZPU in our ICs at work.. Would probably just use C, but it would've been a fun project to target Nimrod directly, even if it's just a subset
19:58:01*skyfex_ is now known as skyfex
19:58:40Araqskyfex: you can use nimrod as a "better C" via --os:standalone
19:59:00skyfexHave anyone tried to work on a backend that targets an instruction set directly? I know there's some work on an LLVM backend? But that's not quite the same is it
19:59:32Araqthere is some work on that, yes, but nothing in master
19:59:38Araqor devel for that matter
19:59:58Varriount|MobileYou mean, like a native compiler?
20:00:22Araqwell mat3 keeps talking about that, Varriount|Mobile
20:01:06*Varriount|Mobile cheers on mat3
20:01:55Araqskyfex: I don't think it's feasible, we don't even have common subexpression elimination
20:02:17Araqand I consider backends without that bad jokes
20:03:00Araqon the other hand, CSE is easily implemented, even across basic blocks, sempass2 almost does it already
20:03:01skyfexDo you think implementing a subexpression elimination pass would be difficult?
20:03:25*r0b2 quit (Read error: Operation timed out)
20:03:29skyfexRight
20:04:48Araqyou can try to implement my "write tracking" algorithm and easily get a better optimizer than VCC's :P
20:05:24Araq(or maybe I tested VCC's optimizer in unfair way last time)
20:05:24skyfexImplementing a backend as part of starting to use that ZPU would make a bit sense, because we'd initially just use it for maintenance tasks, and we would have loooots of cycles to spend
20:05:27*r0b2 joined #nimrod
20:06:14*shodan45 joined #nimrod
20:06:43skyfexMaybe after a while we'd want to start using it for algorithms (auto-exposure, auto-whitebalance... we make CMOS camera chips).. and I could work on improving the backend as the requirements expand
20:06:47EXetoCtoo much honesty is bad for marketing
20:07:21AraqEXetoC: what are you refering to?
20:08:05Varriount|MobileComcast Exec possibly?
20:08:12EXetoCVCC's optimizer
20:08:44skyfexAnd then I could make that Hardware Description Language as a DSL in Nimrod (which is the main reason I got into Nimrod in the first place).. then redesign the ZPU processor in that Nimrod DSL.. and then we could say we have the only processor where the processor itself, the full compiler, and the software written for it is in the same language
20:09:12skyfexShould get Nimrod some serious attention
20:09:28skyfex*the only language
20:09:54Araqskyfex: does LLVM have a backend for ZPU?
20:10:06skyfexAraq: No, unfortunately.. only GCC
20:10:20skyfexI actually don't know of an open source CPU with an LLVM backend
20:10:34skyfexUnless someone has done it with OpenRISC since last I checked
20:11:00skyfexOh, there are open source MIPS implementations
20:11:22Araqwell direct integration with GCC is perhaps preferable but then linking against gcc itself is a huge effort
20:11:45Araqso... I'm fine with a native backend
20:12:28skyfexI think you mentioned in passing in the forum that you had some issues with LLVM? If so, what was that about?
20:13:36*[1]Endy joined #nimrod
20:14:00Araqin a nutshell: What does LLVM provide over C?
20:14:58Araqnot much and what it does provide over C is barely documented (stack tables for zero cost exception handling comes to mind)
20:15:19skrylarmore direct control over how the IR is translated, FWIW
20:16:06Araqno unions nor bitfields, so to get excellent C interop, you have to reimplement these lowerings
20:16:14*Endy quit (Ping timeout: 246 seconds)
20:16:14*[1]Endy is now known as Endy
20:16:29skrylarI didn't know we officially had unions anyway :)
20:16:44Araqwell it's like a 10 lines patch to the current compiler
20:16:47*skrylar remembers someone here discussing doing those as a macro
20:16:58Araqand they are in my todo
20:17:28Araqalso Posix doesn't specify the *values* of anything really
20:17:37EXetoCwho was working an alternative variant construct?
20:18:19skrylarhrmm. i wonder what fastRuneAt does if i ask for a stupid index
20:18:29Araqso you're better off to translate E_OUTOFBRAIN to C's E_OUTOFBRAIN instead of determining the #define's value
20:18:33EXetoCcheck the source
20:19:04skrylari'm patching this gap buffer module so it doesn't potentially mutilate unicode
20:19:08Araqthough determining the #define's value has its merrits too of course (can compute with it at compiletime then)
20:19:29skrylarisn't that one of the reasons autotools became existent?
20:19:49skrylar"does this system have this type? no. how big is int? 4. good enough to fake it."
20:20:01EXetoCskrylar: I suppose it might crash. an assertion shouldn't hurt
20:20:29EXetoCunless of course you want fast debug builds as well :>
20:20:31*zahary_ quit (Read error: Connection reset by peer)
20:22:44skrylarEXetoC: looks like it doesn't check
20:22:44*Demos joined #nimrod
20:23:17shodan45I read a discussion on the forum debating the "export syntax", and since I'm coming from python, I have to ask: why not just export everything?
20:23:34Araqbrb
20:23:49DemosI thought export was used to export stuff you imported from another module
20:23:50skrylarEXetoC: well i guess its patching time :/
20:23:53*nequitans quit (Remote host closed the connection)
20:24:18*nequitans joined #nimrod
20:24:32skrylarEXetoC: it looks like if you ask it to read a rune in the middle of a 4-byte rune, it will just panic and give you the byte itself, it doesn't go "oh this is a continuation byute" and skip over it
20:24:43EXetoCok
20:26:19skrylarmeh. i'll get this gap buffer working assuming the stdlib did it correctly and make a note to patch the rtl later
20:26:30EXetoCshodan45: I don't mind keeping it as it is. anyway, the problem then is that any naming convention for denoting private symbols is bound to be ugly due to the insignificance of underscores
20:26:56Demoshow would using underscores be any better?
20:27:00Demosassuming we coul
20:27:02Demosd
20:28:59Demoshaving everything exported by default with sugar for making modules that just forwarded stuff on would be OK, but at that point you have almost the same thing as we have now. And you have to move about the source to change exports, which is annoying.
20:32:35dom96reactormonk: leave the wiki page as is
20:34:08*[1]Endy joined #nimrod
20:34:15Matthias247dart uses underscores for private functions (and even enforces it) and I find it not that bad. However if you have lot's of private functions it will look quite strange
20:35:31Demoslike any underscore anywhere?
20:35:42Matthias247I also thought about pointers when I first saw the * syntax ;) But it's a minor issue
20:35:52Matthias247Demos: underscore at the beginning of the function
20:36:20Matthias247_imPrivate()
20:36:58Demosah, yeah that is not uncommon in C++, (so long as you are in a namespace) but I feel like it is uglifying the name of the private, which is not really worth doing. People do that in C++ to try and combat name collisions
20:37:26*Endy quit (Ping timeout: 264 seconds)
20:37:27*[1]Endy is now known as Endy
20:37:43reactormonkdom96, I'd rename it to "roadmap for contributions"
20:37:51Matthias247I use it in C++ too :) But just for convention and to get a better overview what is private and what not
20:38:01dom96reactormonk: I would like to keep it as a reference for next year.
20:38:11dom96So please keep it as is. You can copy it into a new wiki page if you want.
20:38:20Demoswell the reason to use it in c++ is because you hope that nobody puts anything like that in a header file
20:38:43dom96Regarding the previous discussion: I will be really angry if they tell me that they rejected us because of the name...
20:38:46Matthias247skyfex: The HDL thing would be really cool
20:38:50dom96Git has been accepted.
20:38:59Varriount|MobileAraq: Is it possible for nimrod to gain zero cost exceptions?
20:39:17dom96Varriount|Mobile: Sorry. I've been away. I'll try to fix it ASAP.
20:39:37Varriount|Mobiledom96: Thanks
20:40:45EXetoCI thought it was just potentially cheaper on x64 compared to x86, but how can it be exactly zero?
20:42:09*askatasuna quit (Quit: WeeChat 0.4.2)
20:42:18Demoszero cost exceptions do not execute more code than replaceing the exception with abort would in the case of no exception
20:42:27Demosthat is what it means
20:42:27Matthias247EXetoC: it's described here: http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gnat_ugn_unw/Exception-Handling-Control.html
20:42:46EXetoCok it makes sense then
20:44:55skyfexMatthias247: Thanks, I need a few features that's in the pipeline before I can start, so for now I'm trying to help out any way I can, and play around with the language/compiler
20:45:14skyfexMatthias247: Specifically static params with generic types: http://build.nimrod-lang.org/docs/manual.html#static-t
20:45:42Demosstatic params of /any/ type except range fail to work currently
20:46:13DemosI am looking forward to static[T] working as well. Also generic specialization (like c++) would be sweet
20:49:49*Demos quit (Quit: Demos)
20:50:23*Mat3 joined #nimrod
20:53:39nequitansDemos, so can you explain briefly how Nimrod handles generics (I assumed they handled it like C++, specializing functions for each type).
20:54:38*[1]Endy joined #nimrod
20:55:01*aftershave_ quit (Quit: Computer has gone to sleep.)
20:57:19*Endy quit (Ping timeout: 244 seconds)
20:57:19*[1]Endy is now known as Endy
21:00:22reactormonknequitans, from what I understand, nimrod checks if the type has the called functions on it, but I can't guarantee that matches up with the internals
21:02:24Araqnequitans: specializing for each type is it
21:04:58nequitansthanks Araq
21:05:02skrylarAraq: would you be offended if i hacked on the unicode module later?
21:05:45Araqskrylar: not offended, but I'm unlikely to accept any pull requests
21:06:10Araqunicode is a clusterfuck and you'll introduce regressions
21:07:01reactormonkAraq, still a better clusterfuck than different encodings
21:07:02skrylaris there an actual test suite for the unicode?
21:07:10skrylari looked in the unicode module and it had ~4 lines for testing
21:08:04Araqreactormonk: not in my opinion, it simply trades one set of problems for another. Besides all the different encodings still exist.
21:08:09*Endy quit (Ping timeout: 272 seconds)
21:08:34Araqskrylar: no, I ported the code over from plan9 back in the days
21:08:37reactormonkAraq, btw, when will the rebase happen to kick out the csources?
21:08:45skrylarbleh.
21:08:53skrylarI should dig up my old unicode stuff from C
21:09:07skrylarI had a tiny stack of tests for basic unicode crap in that
21:09:07Araqyou should but it's old and outdated
21:09:09*Demos joined #nimrod
21:09:21Araqunicode moved on and now support klingon
21:09:26skrylarlol
21:09:37Araqhave fun keeping up to date with an evolving "standard"
21:09:47skrylarthey have versioned reports you know
21:09:59AraqI know but I wish I didn't
21:10:05Araqignorance is bliss
21:10:18skrylarI was mostly concerned about fastRuneAt not understanding that its not okay to return the middle of an encoding byte as a character
21:10:31reactormonkjust wrap fucking ICU
21:10:36skrylarif you give it the middle of a 4-byte rune, it will happily return garbage o.o
21:10:43Varriount|Mobile ICU?
21:10:52skrylarICU is an internationalization library
21:11:08reactormonkhttp://site.icu-project.org/
21:11:30Varriount|MobileIt wouldn't happen to be the same lib used by GTK, would it?
21:12:10skrylari had this really annoying method for getting the safest split point at a given coordinate
21:12:23skrylaryou told it if you wanted to go left or right, and it would check if that was the middle of a grapheme or not
21:12:31Araqskrylar: you know, HTML has versioned reports to
21:12:42skrylarAraq: until they went Full Retard(tm) with 5
21:12:52skrylar"nobody follows this anyway, we're done versioning it \o/"
21:13:49Araqheh, I like it
21:13:59Araqfinally accepting the reality
21:14:07skrylarwhat i would like to know is why they endorsed 5 :|
21:14:11Araqunicode is still some versions away from that
21:14:16skrylarthey went through all this work for XHTML
21:14:22skrylarpeople went and wrote backend emitters for XHTML
21:14:29skrylarand the w3c went "fuck it, we're going to be morons"
21:15:24Mat3what are morons ?
21:15:50Araqas soon as you start with a group people who are only concerned with a *spec* you're doomed
21:16:05skrylarMat3: they basically did all this work to clean up the spec, people (esp in the ruby world) went "okay we can support that" and then they threw it all out
21:16:20Araqthey will overengineer and make it too hard to implement
21:16:35skrylarI didn't know you were a member of the C++0x committee, Araq :P
21:17:02skrylaras a spy :o
21:17:18Matthias247he's right, that happens for most specs :)
21:17:21skrylarAnyway, yeah. I think that tends to happen when you're more corporate than coding
21:17:26Matthias247you could also look at Websockets
21:17:32Demosc++11 seems to actually be implementable though
21:17:41Matthias247or Autosar
21:17:56skrylarremember the nightmare when they were poking to have vorbis made part of the spec?
21:18:04skrylar"well we have this audio tag, and this codec is free for everyone to use"
21:18:12skrylar"NO WE WON'T IMPLEMENT THAT BECAUSE WE DIDN'T PATENT IT." etc
21:19:23Demosbigger problem with <audio> (for me) is that it is so very limited, and awkward to use from javascript
21:20:01skrylarDemos: but people weren't objecting to the functional problems, they were objecting that *their* patented format wasn't the official one
21:20:13Demosyeah, that is/was stupid
21:22:06skrylarwhats really weird is the torrential flamewar that came up over webp
21:22:18skrylarsomeone asking when firefox would support it and people blowing up
21:22:56NimBotnimrod-code/babel master fbeddd5 Dominik Picheta [+0 ±1 -0]: Fixes #31... 2 more lines
21:23:11Varriount|Mobile:D
21:23:18dom96Varriount|Mobile: Voila.
21:24:44Mat3CSS is still limited in its formatting capabilities and Javascript still lacks some specification (that's more important in my opinion)
21:25:19Demosthe web is an interesting example of how "sound software engeneering" can we worthless in the face getting it done NOW. Dispite all these problems the web is pretty darn useful
21:25:23skrylarremember when the IETF actually dealt with standards
21:25:34skrylarthat actually were compatible with things
21:26:26skrylarif email were implemented today, i doubt it would even work without violating 12 patents and having 500 if/else cases to deal with bolton crap
21:27:24Demoswell implementing an email client/server today would probably require exactly that (well not the patent thing but still)
21:27:55skrylarDemos: i donno, there's a lot of email that is pretty modular
21:28:28skrylareven some of the hacks done to add say, compression to MUD server/clients uses the feature negotiation fields in telnet and has graceful fallbacks
21:28:56Demosright, you can get something that works most of the time just following whatever spec (IMAP or POP3). But I bet most established email readers and email servers have their own extensions
21:29:36skrylari know i bitched about MS exchange because of that
21:29:56skrylar"lets make a proprietary protocol when all we *needed* was an addon that would have already fit in what existed"
21:31:11Demosand to be fair the "web" is a spec for an operateing system while email is not. And I have found that IMAP does not really do all that MAPI/exchange can do. Although whether an mail protocol should be doing contacts and calenders is a bit questionable
21:32:06skrylarI imagine the IETF would have told you to put it in an X-Header or a .vcard file or similar
21:32:43skrylaras for 'web'.. eh
21:33:10skrylarits sorta been screwed since day 1, considering javascript was contrived by Netscape IIRC
21:33:44skrylarIIRC the guy who came up with javascript wanted it to work like Hypercard, but the execs said "it needs to be like that java thing!"
21:33:48Demoswell it was screwed when people started to want to put whole apps on it instead of just text with markup
21:34:24skrylarDemos: the guy who made hypercard lamented about wishing he had put in hyperlinks ;)
21:34:30skrylarMaybe if he had, we'd be in a better place
21:34:40Varriount|MobileDidn't the guy who designed javascript say that it was originally just a test/prototype language
21:35:23skrylarVarriount|Mobile: IIRC it was supposed to be hypertalk, but the execs pooped on the syntax
21:36:11DemosI thought it was "we need a language for the web. you have one week"
21:38:32Araq"and it has to be Java-like"
21:38:33skrylari found a reference but its wikiderp
21:38:49skrylarI love how wikipedia whines about what kind of source is allowed, and then they allow their citations to link to 404 pages
21:39:23Araqotherwise Brendan would have picked Scheme and called it a day :P
21:39:45skrylarwell the hypercard page on wikipedia talks about how most of the HTTP/browser/script work was inspired by it, so :)
21:39:46Demosjavascript is not even like java at all though.
21:39:50EXetoCskrylar: surely it can be disputed then by reviewers
21:39:56skrylarDemos: it had to look like it to the executives
21:40:04AraqDemos: "java-like" only refers to the syntax
21:40:06skrylarwhich basically meant "it needs to LOOK like algol"
21:40:40Araqprogrammers don't know shit about semantics anyway, so syntax is all that matters
21:40:58Demossadly that is probably right.
21:41:07Mat3well, how long it looks like Algol ;)
21:42:13*q66 joined #nimrod
21:44:26*Mat3 just compiled chicken and test out this scheme-to-C compiler
21:45:15EXetoCmight as well just use C then
21:45:26EXetoCoh yeah, that argument doesn't work. nvm
21:45:30skrylarI tried chicken scheme once.
21:45:39skrylarIt had some.. gross stupidity in regards to restrictions
21:47:38AraqEXetoC: lol
21:48:31Araqskrylar: the author of scheme now thinks we should program with NAND gates directly, iirc
21:48:53DemosI thought R6RS was a bit insane
21:49:19skrylarcould always go back to lisp :p
21:49:22Araq"every expression should have a name" is part of his great idea to revolutionize programming iirc
21:49:44Mat3skrylar: It uses the C stack and some hacks for compiling continuations. That explains my interest
21:49:54skrylarMat3: did they fix it so threads work?
21:50:15skrylari seem to remember threading not working when I used it, and i consider things where threading doesn't work to be jokes
21:50:36Araqskrylar: threads are an implementation detail and can be implemented with macros anyway
21:50:51Araq(I'm kidding, they cannot, of course)
21:50:55skrylarAraq: lol
21:51:04skrylar(import 'c-lang)
21:51:07skrylarproblem solved \o/
21:53:05Mat3skrylar: I does not expect that threads work with that method. However one can replace threads though coroutines
21:53:30skrylarMat3: coroutines do not span processors
21:54:13Mat3there can. All needed are pools of coroutines running as processes
21:54:38skrylaryeah, they mentioned using fork() and serialization
21:54:43skrylartoo bad fork is broken on windows
21:56:07NimBotVarriount/NimLime caas 17be7df Matthias Einwag [+0 ±1 -0]: Futher tests with Caas. Still deadlocks on bigger files
21:56:23Araqjust fyi fork is just as broken on iOS and OS X
21:56:53Mat3skrylar: I think you mean the winCreateProcess API (or some of its descendents) ?
21:56:57Araqbut people never cared about what works on macs
21:57:09skrylarI still miss my mac.
21:57:28AraqI still my "del" key
21:57:32Araq*miss my
21:57:39skrylari have one of those
21:58:24Araqapple's idea of usability is to remove things Steve Jobs personally doesn't use
21:58:26Varriount|MobileI miss *not* having a sore throat and swollen tonsils
21:59:33Mat3Araq: Well, that is a strategy, alias attitude also known by the Gnome community
21:59:49Mat3(and both share success)
21:59:58skrylar:/
22:00:10skrylarsome of it isn't "remove stuff people don't use", so much as "don't put it in unless someone understands how to use it"
22:00:30Araqand apparently Steve didn't even deleted stuff on a usb stick
22:00:35Araq*delete
22:01:21Araqotherwise they might have noticed that storing the wastebin on the same device is braindead
22:01:50skrylarhttp://zynaddsubfx.sourceforge.net/images/screenshot03.png how do? :P
22:02:14Mat3skrylar: Probably you should read about Jeff Raskin
22:02:21NimBotVarriount/NimLime master eeff412 Matthias Einwag [+0 ±1 -0]: Fixed bug that autocomplete settings did not get load on startup
22:02:27skrylarMat3: i saw one of his designs
22:02:34skrylarthe one where the whole OS was one huge text file
22:03:28Mat3reads like the Canon Cat
22:03:36skrylarthere is also a "Raskin" desktop app which tries to make it so your whole desktop is this big scrollable surface
22:05:22NimBotVarriount/NimLime caas be0d10c Matthias Einwag [+1 ±2 -0]: First caas code... 2 more lines
22:05:30skrylaroh dear
22:06:20skrylarUnicode hell of the day: determining if a key is something a text field should allow entry of
22:06:40skyfexVarriount|Mobile: Would you recommend upgrading to Sublime 3?
22:07:11skrylari probably should upgrade my sublime at some point; i haven't fired it up in a while
22:07:26Varriount|MobileI don't have sublime 3
22:07:55skrylarI'm kind of disappointed that Sublime 3 hasn't made UI improvements the last time I touched it; you're still expected to edit JSON files to get anything done
22:08:03skrylarAt that point, why am I not using Vim?
22:08:18skyfexIsn't VimScript a nightmare?
22:08:27skrylarIsn't JSON a nightmare too? :)
22:08:59Varriount|Mobileskrylar: Which is why I use a plugin that allows me to edit files as YAML
22:09:08Matthias247sublime 3 has a less broken plugin API
22:09:16Matthias247but it still lacks many things
22:09:18skrylarVarriount|Mobile: how about they actually implement a GUI so you can edit them like a user?
22:09:46Varriount|MobileAnd how about they actually lower the price so that I can pay for a license?
22:09:47Matthias247and version 3 has now resolution independent font sizes
22:10:02skrylarVarriount|Mobile: well the infinite demo was nice
22:10:04Mat3ciao
22:10:07Araqskrylar: funny, I prefer text files for configurations
22:10:16AraqMat3: good night
22:10:17*Mat3 quit (Quit: Verlassend)
22:10:26Varriount|Mobileskrylar: Yes, but I feel bad that I don't have a license
22:10:31skrylarAraq: i tend not to like having to push JSON files around in 60$ software
22:11:01skrylarbut i'm just one of those stupid mac users that likes not having to check the wiki every time i want a program to do something *shrug*
22:11:25Araqskrylar: well JSON sucks for configuration; however, *searching* through an endless list of options is hard
22:11:44Araqsearching through a config file tends to be easy
22:12:00Varriount|Mobilectrl+f
22:12:07skrylarAraq: its less great for things like entering font infos or key bindings
22:12:12DemosI fail to see how JSON is worse than elisp or vimscript for config files
22:12:33Varriount|MobileIt could be worse - it could be xml
22:12:34skrylarDemos: its not necessarily worse its just not becoming of 60$ software with paid upgrades
22:12:48AraqJSON: "everything" "has" "to" "be" "in" "quotes"
22:13:00Varriount|MobileAnyway, iirc, the decision to use json was for textmate compatibility
22:13:10skrylarbut textmate has an options window!
22:13:15DemosI suppose. but (everying(has(to(be)in)parens))
22:13:24skyfexVarriount|Mobile: You a student?
22:13:24nequitansI really like sublime, but somehow I've reverted back to my tried and true Vim in a terminal with Nimrod highlighting. I guess I like the fact that my environment isn't that different (and is speedy) SSHed or not
22:13:38Varriount|MobileYes.
22:13:42skrylaryou can set up the CSS-style themes through a GUI in textmate without addons
22:14:19skyfexWish they did student discount.. I actually emailed them about it.. they said to just keep ignoring the popup message to buy it
22:14:32Matthias247lol
22:14:38skrylarI liked Sublime, I've just found that more often than not Subvert+Column Edit does 90% of what I used multicaret for, and i always forget i have a snippet for something until after i've already typed it all in >_<
22:14:48skrylarskyfex: well theres what reaper does instead :P
22:14:52skrylarit just nags on startup
22:14:57Varriount|MobileYeah. In my opinion, more people would buy sublime text if the price was lowered.
22:15:11skrylarsublime 1/2 wasn't overpriced
22:15:35Varriount|Mobileskryler: Reaper?
22:15:37skrylarit cost about the same as textmate and loads of people bought that
22:15:52skrylarsome communities switched to macs *just* to use it, so 60$ isn't insane
22:16:33skrylarVarriount|Mobile: reapers an audio DAW; its basically nagware until you pay for a license; and the license is 60$ for nonprofit/student/profit under 20k$ or 200$ for 'commercial'
22:16:37dom96People who use Macs already have too much money.
22:16:48Matthias247it's a point of view thing. If you are using it for a job then 60$ is peanuts. If you are a student it might sound high
22:16:59Varriount|Mobile^
22:17:12Demoshonetly sublime is like vim/emacs without all the history and funny UI quirks
22:17:24skrylarI donno. I used to use Sublime 1 and 2 daily
22:17:28Varriount|MobileAnd an actual gui
22:17:37skrylarI haven't really felt like paying for the upgrade
22:17:48skrylarIMO they haven't fixed anything I care about that is worth paying money for *again* over
22:17:53Demossublime's gui is really just about as deep as vim's, I guess it has tabs but still
22:18:08Varriount|MobileVim had a GUI?
22:18:11skrylargvim
22:18:16Varriount|Mobile*has
22:18:36skrylari guess i don't get to do GUI code today; everything leads back to unicrap
22:18:37skrylarsigh
22:18:59dom96I attempted vim a long time ago. It just feels too archaic for me.
22:19:09Araqskrylar: what's wrong with keeping the bytes as they are?
22:19:33Matthias247dom96: same for me
22:19:40Matthias247plus the font rendering is terrible
22:19:59*JStoker joined #nimrod
22:25:53*io2 quit ()
22:26:16skrylarAraq: i have to check if the character from the keyboard is a control code or something printable
22:26:33skrylaryou don't want to actually append the backspace code to a buffer, you want to backspace a character
22:26:39Araqand you use unicode tables for that?
22:26:53Araqsounds insane and wrong
22:27:35Araqyou know unicode has its own ideas of how a line terminator looks like
22:27:51skrylarunicode usually makes me sad
22:29:38Araqyeah but python 3 gets it right. It exposes everything as utf-32.
22:30:26Araqunfortunately utf-32 is a variable length encoding too nowadays so it doesn't help with anything ...
22:31:45skrylari had a pretty nice system for hiding away the pain of utf-8 but it had the pain of being C99
22:32:14Araqit should expose glyphs instead but nobody knows how to store those ... utf-128 ?
22:32:24skrylari used a struct
22:32:30skrylar32 ints
22:33:02Araqwith unicode 9 we'll get variable length glyphs
22:33:07skrylarthe number of combining marks allowed in the stream safe encoding is 30, so if you deal with that subset a ~32 int struct can represent an entire grapheme
22:33:49Araqah interesting
22:34:10skrylari had it layered so there was a rune level, and a grapheme level, with iterators for both
22:34:18Araqdid I mix up glyph and grapheme?
22:34:22skrylarpossibly
22:34:40skrylargrapheme is "all the shit which comprises the letter 'a'"
22:34:56skrylaroh good, i found my old C code for this
22:34:58Araqyeah I meant grapheme then
22:35:05skrylartime to port. :|
22:35:29Araqwhich only proves my point ... this is so complex that nobody can possibly get it right
22:35:51skrylarnot very efficiently anyway
22:36:19Araqso the world pretends to support utf-8 but it's more like a subset of unicode and you better think of utf-8 as a stream of bytes ...
22:36:38skrylarmost people don't even pretend to support utf-8
22:36:58skrylarthey just chuck bytes around and hope for the best
22:37:05Araqyeah
22:37:18skrylarthe only reason i imposed a limit is because i hate liberal use of stretchy buffers
22:37:49Araqand that tends to work better than the tools which are obsessed with "correctness"
22:37:50skrylarand a single letter 'a' which takes up 5 gigabytes in umlauts is valid unicode
22:38:20Araq(gedit doesn't open files that are not unicode, thanks for that)
22:38:59Araqspeaking of which
22:39:08Varriount|MobileWoah, really?
22:39:16Araqshould the compiler accept unicode newlines? if so, why?
22:39:23Araqwho uses them?
22:39:37Araqwe already have CR, LF and CR+LF
22:39:37dom96I'm pretty sure gedit does
22:39:42skrylaroh, heh. i still have the gcc barf in this folder
22:40:06skrylar(i used to test the unicrap code with gcov+unit test rig, not sure if nimrod has a coverage tool though)
22:40:39Araqdom96: well I'm sure I had files gedit wouldn't open
22:40:57dom96possible
22:40:58Araqit's hard to fix encoding issues when you can't edit the file ...
22:42:13*Mordecai joined #nimrod
22:42:35*Mordecai is now known as Guest90099
22:42:46skrylaroh gibbus this is nightmare fuel
22:42:59skrylarlooking at old utf internals
22:43:30Araqwhy does unicode introduce new newline characters in the first place?
22:45:14*psquid quit (Disconnected by services)
22:45:17*Guest90099 is now known as psquid
22:45:18Araq"The Klingon called, they want their own newline"
22:45:55Araq-- "ha, this joke never gets old. Let's add it to the standard"
22:46:05skrylar"if [..] return sylYES" .. the greatness of ANSI C not having a bool
22:46:21Araq-- "Guys, are you having crystal meth again?!"
22:47:25*Araq dreams up a new xkcd cartoon
22:50:25skrylaralright, i found the old code. i'll port it over and toss it on github
22:50:50skrylarit even has extremely painful things like bidirectional support
23:11:42*q66 quit (Read error: Connection reset by peer)
23:13:41*vendethiel quit (Ping timeout: 246 seconds)
23:18:31*q66 joined #nimrod
23:20:04*vendethiel joined #nimrod
23:35:13*Varriount|Mobile gives skrylar a cookie with sprinkles
23:36:26NimBotAraq/Nimrod devel 49ab1ea Zahary Karadjov [+0 ±4 -0]: some fixes for static params usage in macros
23:36:54Araqzahary1: want me to merge my vm2 stuff now?
23:37:06Araqit's at least as stable as the old vm2 afaict
23:37:25zahary1I don't have any objections
23:38:06*carum joined #nimrod
23:38:21zahary1what's left to do? the typedesc hangling, the "can't eval" path and the re-entrancy issues?
23:39:09Araqyup
23:39:34AraqI will do the "can't eval" path soon
23:42:14Araqbtw did you change skGenericParam to skType?
23:42:16zahary1I haven't read all of the code yet, but the use of genType looks a bit problematic; it assumes that the types will be known at the time of code generation, which is not the case with all typedesc values
23:42:24zahary1the old VM had some similar issues
23:42:47Araqthat's because we have no real spec for typedesc
23:43:04Araqis typedesc[T] the same as typedesc[typedesc[T]] ?
23:43:36zahary1they were flattened in the previous design, yes
23:44:17Araqis a, b: typedesc the same as a: typedesc, b: typedesc ?
23:44:41zahary1I assume we are talking about proc params - then yes
23:44:49Araqyeah, ok
23:44:57Araqwhat about 'distinct typedesc' ?
23:44:59zahary1typedesc is not a bindOnce type in the parlance of the code
23:45:15Araqbut typedesc[T] has to be
23:45:17zahary1it is distinct by default
23:45:38zahary1you get bindOnce by using this form
23:45:38zahary1proc foo[T: typedesc](a, b: T)
23:46:10Araqok, but what about:
23:46:22Araqproc foo[T](a, b: typedesc[T])
23:47:04Varriount|MobileUnder what circumstances would a distinct typedesc type be needed?
23:47:24zahary1T will be bindOnce here, which will effectively make a, b the same
23:49:47Araqwhy are types not known at codegen time btw? you get a fresh instantiation context
23:50:08Araqfor each instantiation it should be known
23:50:18zahary1they are not known when they are parameters
23:50:36Araqoh hmm... I guess you don't get a fresh instantiation context
23:50:37zahary1maybe I'm missing some part of the code that specifically handles parameters
23:51:04zahary1I mean parameters to macros, etc; return values of expressions like seqOfTypes[3]
23:51:28Araqparameters to macros are just like parameters to procs for the vm
23:51:47Araqthey get their own register like a local variable
23:53:22zahary1I'm asking questions a bit too early, because I haven't yet tried to step through the code
23:54:42Araqthe code it produces kicks ass :-)
23:56:37*zielmicha quit (Quit: Connection closed for inactivity)
23:58:32*noam__ joined #nimrod
23:59:32NimBotAraq/Nimrod vm2_2 188be10 Araq [+0 ±3 -0]: keine_schweine test is not platform dependent
23:59:32NimBotAraq/Nimrod vm2_2 3c6d741 Araq [+0 ±1 -0]: bugfix: typo