<< 30-07-2013 >>

01:09:02*Trixar_za is now known as Trix[a]r_za
01:10:35*DAddYE quit (Remote host closed the connection)
01:27:11*q66 quit (Quit: Leaving)
02:12:21*DAddYE joined #nimrod
02:17:13*DAddYE quit (Ping timeout: 276 seconds)
03:13:15*DAddYE joined #nimrod
03:19:26*DAddYE quit (Ping timeout: 240 seconds)
03:30:26*Associat0r joined #nimrod
03:30:26*Associat0r quit (Changing host)
03:30:26*Associat0r joined #nimrod
03:50:57*DAddYE joined #nimrod
03:53:27*DAddYE quit (Remote host closed the connection)
03:53:57*DAddYE joined #nimrod
03:58:37*DAddYE quit (Ping timeout: 276 seconds)
04:03:53*xilo quit (Ping timeout: 245 seconds)
04:11:08*DAddYE joined #nimrod
04:14:12*DAddYE quit (Remote host closed the connection)
04:14:45*DAddYE joined #nimrod
04:19:10*DAddYE quit (Ping timeout: 245 seconds)
04:24:04*OrionPK quit (Quit: Leaving)
04:36:52*DAddYE joined #nimrod
05:02:53*Associat0r quit (Quit: Associat0r)
05:14:10*EXetoC quit (Quit: WeeChat 0.4.1)
05:53:03*DAddYE quit (Read error: Connection reset by peer)
05:53:58*DAddYE joined #nimrod
07:08:59*Araq_ joined #nimrod
08:09:35*Associat0r joined #nimrod
08:11:24*Roin quit (Read error: Connection reset by peer)
08:11:32*Associat0r quit (Client Quit)
08:15:17*Roin joined #nimrod
08:15:17*Roin quit (Changing host)
08:15:17*Roin joined #nimrod
08:56:06*DAddYE quit (Remote host closed the connection)
08:56:39*DAddYE joined #nimrod
09:00:58*DAddYE quit (Ping timeout: 245 seconds)
09:48:32*q66 joined #nimrod
10:05:08*vegai joined #nimrod
10:27:22*Trix[a]r_za is now known as Trixar_za
10:41:51Araq_hi vegai, welcome
10:43:08dom96hello vegai
10:55:20*BitPuffin joined #nimrod
10:59:33*DAddYE joined #nimrod
11:00:07vegaihowdy again
11:04:22*DAddYE quit (Ping timeout: 276 seconds)
11:10:57*Trixar_za is now known as Trix[a]r_za
11:19:42*Trix[a]r_za is now known as Trixar_za
11:21:27*EXetoC joined #nimrod
11:27:33dom96vegai: oh, have you been here before? Your name does sound familiar.
11:29:40vegaiyeah, once or twice
11:32:03*Trixar_za is now known as Trix[a]r_za
11:33:17dom96will you stick around this time? :)
11:35:34vegaiprobably not :P
11:36:00vegaiwhat's been happening?
11:38:37Araq_we're getting a new VM for much improved macro handling
11:39:12dom96I'm not sure when you were last here, but we got a new website.
11:39:17dom960.9.2 was released
11:39:40dom96You can take a look at the changelog here: http://www.nimrod-code.org/news.html#Z2013-05-20-version-0-9-2-released
11:40:05dom96We are having a bit of a debate about whether to get rid of style insensitivity...
11:40:32dom96I am working on an C#-ish await thing.
11:43:02dom96I created a little OS dev starter for nimrod: https://github.com/dom96/nimkernel
11:45:01dom96Babel is now practically finished.
11:45:21Araq_lol, daddye disagrees with you dom96
11:45:38Araq_but surely the compiler needs to catch up first
11:46:02dom96Araq_: About babel being finished?
11:46:47Araq_yeah
11:48:12dom96why?
11:48:37dom96But perhaps I should have said "It's usable" :P
11:48:48dom96or "ready for a first release"
11:51:06Araq_dunno he said something about locking which I didn't understand
11:51:29Araq_like the package manager needs to hold a file lock to prevent inconsistencies etc.
11:52:49Araq_a very useful thing, this way you have to 'sudo rm filelock' when the package manager crashes
12:10:19vegaiI saw that dom96 had entered a nimrod web framework into that big benchmark thing
12:10:22vegaijester?
12:10:46EXetoCya
12:11:03dom96yep
12:20:53dom96That's indeed another new thing.
12:22:50vegaiwhat did @ mean again, for instance in setCookie("test", @"value", daysForward(5))
12:27:46dom96It retrieves the value with the key of name "value" from the URL params.
12:28:30dom96get "/@value": echo(@"value")
12:28:51vegaiahh, it's defined by jester
12:28:53dom96If you navigate to /foo, it will echo "foo"
12:28:56dom96yes
12:28:56vegaiit looked like a language feature
12:35:47*Associat0r joined #nimrod
12:45:38EXetoCyeah, the syntax can be extended
12:46:23Araq_not really, but it's flexible
13:04:51*DAddYE joined #nimrod
13:09:27*DAddYE quit (Ping timeout: 256 seconds)
13:31:54*Endy joined #nimrod
13:36:16EXetoCok modify the AST
13:43:19*q66_ joined #nimrod
13:44:00*q66 quit (Disconnected by services)
13:44:06*q66_ is now known as q66
13:49:26*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212])
14:30:40*xilo joined #nimrod
14:38:16*BitPuffin quit (Ping timeout: 264 seconds)
14:42:53*[1]Endy joined #nimrod
14:46:29*Endy quit (Ping timeout: 268 seconds)
14:46:29*[1]Endy is now known as Endy
14:55:10*Trix[a]r_za is now known as Trixar_za
15:08:40*DAddYE joined #nimrod
15:13:37*DAddYE quit (Ping timeout: 268 seconds)
15:58:05*Associat0r quit (Quit: Associat0r)
16:30:56*DAddYE joined #nimrod
16:30:58*DAddYE quit (Remote host closed the connection)
16:31:33*DAddYE joined #nimrod
16:42:42*Trixar_za is now known as Trix[a]r_za
16:43:10*Sergio965 joined #nimrod
17:01:38*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
17:08:45*Sergio965 joined #nimrod
17:13:08Araqhi Sergio965, how's progress on your OS? (it is you who is working on an OS, right?)
17:13:23Sergio965It is, yeah.
17:13:27Sergio965It's going alright.
17:13:40Sergio965I'm working on one in Rust at the moment.
17:13:46Araqbah :P
17:14:15Sergio965After I finish a good amount of it (VM, Interrupts, PIC, Processes), I'll likely write one in Nimrod.
17:14:28Sergio965+ a shell.
17:14:59Sergio965Have you played with Rust much?
17:15:37Araqno, I only checked out its type system really
17:18:17Sergio965What did you think of it?
17:20:52Araqit looks very nice, I might steal ideas from it ;-)
17:26:11DAddYEAraq: https://news.ycombinator.com #12
17:26:53DAddYESergio965: do you like rust?
17:27:04DAddYEif so, what do you like?
17:29:40Sergio965I think, for the most part, I do like Rust.
17:31:24Sergio965(One sec)
17:39:46Sergio965Alright, back.
17:40:43Sergio965I really like Rust's enums, pattern matching, module system, and ownership/lifetime system.
17:41:17Sergio965I dislike Rust's verbosity and (at times) needless worry for safety.
17:42:54Sergio965Rust's enums are quite different from most languages as they can be n-arity. So you can do something like: enum Shape { Circle(float), Rectangle(float, float) }, or Color { White, Black }.
17:43:51Sergio965They can even be structs. So you can do enum Person { Employee { id: uint, name: ~str}, Manager { id: uint, name: ~str, title: ~str }.
17:43:52EXetoCyes, tagged unions. it's not really the same thing
17:44:27Sergio965Yeah, they're like tagged unions.
17:45:12Sergio965But with much better syntax and static guarantees .
17:45:26dom96Looks like Nimrod's object variants.
17:48:18Sergio965Pattern matching is pretty great, too. You can match against enums by doing match thing { Circle(radius) => radius * radius, Rectangle(length, width) => length * width }, against structs similarly: match thing { Employee{ id, _ } => bla, Manager { id, _ } => bla }, and vectors (and others): match thing { [first, ..middle, last] => first + last / middle[0] }.
17:48:46EXetoCare there *tagged* unions that aren't type safe? that seems like the biggest different compared to regular unions that don't have tags
17:49:32dom96Pattern matching is something that I would love to see in Nimrod. May be possible to do pretty well with a macro.
17:50:29Araqwe'll get pattern matching
17:51:03Sergio965I think the coolest part of Rust is it's lifetime system. The lifetime system allows the programmer to specify lifetime pointer guarantees that need to be met. The compiler statically checks that all guarantees asserted are met and further ensures that the lifetimes of two objects being used in the same computation have a non-zero intersection. This means that in Rust, there are never dangling pointers.
17:51:36Sergio965(If the lifetimes are explicitly specified, then all pointers have different lifetimes that may or may not overlap.)
17:51:43Sergio965are not explicitly*
17:53:23Sergio965This also allows you to return pointers from a function with full safety. You'd have something like: fn add(a: &'r int, b: &'r int) -> &'r c { return &(*a + *b) }.
17:54:00*alexandrus joined #nimrod
17:57:54Sergio965Eh, that last example isn't quite correct.
17:57:56Sergio965But whatever.
17:58:24DAddYESergio965: and why Rust isn't gain a good community traction?
17:58:39Sergio965It's cumbersome to learn.
17:59:03DAddYEalso I'm quite disappointed that Mozilla produce some software in go instead to use rust
17:59:04Sergio965It took me a while to grasp the lifetime system even though I've worked with C, pointers, and manual memory management for years.
17:59:30Sergio965I think the language could be more elegant and yet still be just as powerful.
18:00:30DAddYESergio965: my classic question: what language you'll pick up (if not Rust)?
18:00:44Sergio965What do you mean pick up?
18:00:53DAddYESergio965: start to use/study
18:01:16Sergio965Well, I'm building an OS in Rust as we speak, so I'll be deep in Rust for at least the next couple of weeks.
18:01:18EXetoCI mostly disliked the syntax, which I've said before. it too has statements as expressions though, so that's good
18:01:51Sergio965I've dealt with quite a number of languages. To date, I can say I'm really comfortable with Python, Go, C, Objective–C, Java, Ruby, JavaScript, RISC/x86 Assembly.
18:02:27DAddYEmostly my same background except python and risc
18:02:31Sergio965EXetoC: Yeah, the syntax is the thing I most dislike.
18:03:55Sergio965I've dabbled a bit with Haskell, but I can't say I know it.
18:04:14Sergio965That's probably the language I'd really like to learn next.
18:05:25DAddYESergio965: me too but AFAIK seems to far to production needs
18:05:38DAddYEs/production/business/
18:05:45Sergio965Haskell?
18:05:51DAddYEyep
18:06:11Sergio965Yeah.
18:06:20DAddYEbig learning curve and too pure
18:06:21Sergio965I think the biggest issue with a language like Haskell is that it's so different.
18:06:35Sergio965And so hiring engineers to write Haskell is difficult.
18:07:15DAddYEthere is a nice article about that from Riak
18:07:32DAddYE(erlang)
18:07:53DAddYElanguage that suffer by the same problem
18:08:00DAddYE(and I don't like)
18:08:49Sergio965Riak is written in Erlang?
18:10:07DAddYESergio965: yup http://basho.com/erlang-at-basho-five-years-later/
18:11:54EXetoCisn't the default float formatting nice? :>
18:12:19EXetoCin nim
18:13:29EXetoCI have learned how to parse it mentally though
18:13:50dom96you can use formatFloat for a prettier version.
18:15:29EXetoCI am, but I should wrap it
18:28:08Sergio965Always wrap it.
18:28:15Sergio965For safety. ;)
18:29:34EXetoCor reduced annoyment :>
18:30:08Araqor cargo cult
18:33:54EXetoCorly
18:36:48EXetoCnah
19:11:11NimBotAraq/Nimrod master dfe09cb Araq [+0 ±6 -0]: fixes token's column information
19:11:11NimBotAraq/Nimrod master 292ed0d Araq [+0 ±3 -0]: lfFullExternalName for 'nimrod pretty'
19:11:11NimBotAraq/Nimrod master 652f6a7 Araq [+0 ±2 -0]: 'nimrod pretty': next steps
19:11:52Araqthis might break idetools, so somebody should test it ;-)
19:24:07Araqdom96: is HTTP 2.0 finally a binary protocol?
19:24:23dom96Araq: No idea. I didn't read much into it.
19:25:16Araqapparently it is :-)
19:30:36*BitPuffin joined #nimrod
19:40:20*Mat2 joined #nimrod
19:40:22Mat2hello
19:41:28Araqhi Mat2
19:41:48Araqnice article btw "Talk to the hand that invented APL" XD
19:42:03Mat2hi Araq
19:42:20Sergio965APL is ridiculous.
19:42:26Araqsorry it's "talk to the hand that made APL"
19:43:37Mat2Sergio965: Can you explain your opinion a bit in more depth please
19:44:09Mat2Araq: Well, I enjoyed reading it :D
19:45:04Araqme too, Mat2
19:45:34Sergio965Mat2: Mostly, it's extremely hard to type.
19:46:28*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:54:27Mat2hmm that's not true because each symbol can be typed by name with an prefixed dot
19:56:14Mat2the language is hard to read for someone who is not in touch with mathematical notations for sure
19:57:40Mat2(however, I found chinese people found its notation quite natural, so this seem to be a cultural phaenomen)
19:59:53*Sergio965 joined #nimrod
20:00:27EXetoChe might not be checking the logs
20:01:44Sergio965Mat2: I didn't know they could be typed by name.
20:37:32Mat2what's your motivation coding an OS ?
20:42:58AraqMat2: the ones we got suck?
20:44:44EXetoCyeah, we're waiting patiently for your OS to get usable!
20:47:10Mat2Araq: Is that a multix or z/OS clone ? *g*
20:48:13Mat2by the way: For os development I found this one interesting: http://www.returninfinity.com/baremetal.html
20:48:49AraqMat2: it's a DOS clone ;-)
20:49:10Araqunix is too bloated to run on a 286 anyway
20:51:37EXetoCBitPuffin: what's wrong with licenses like MIT and BSD? someone expressed concerns regarding unlicense, and the more well-established ones seems to be good enough
20:51:46EXetoCdo you have to care less about putting stuff in every file? :>
20:51:58BitPuffinEXetoC: still have to include the license if you redistribute
20:52:03BitPuffinand you needn't worry
20:52:42BitPuffinEXetoC: second paragraph works either if a country supports public domain or not
20:52:54Mat2well, just grap the sources of concurrent CP/M 86, extend it with an exe loader and you will have a multitasking, multiuser version of DOS
20:53:02EXetoCok
20:53:17BitPuffinEXetoC: ever heard of sqlite?
20:55:46Sergio965For my OS to get useable?
20:55:57Mat2yes
20:56:03EXetoCya. just add some OpenGL support and stuff :>
20:56:08Sergio965I'm working on my master's thesis.
20:56:12EXetoCBitPuffin: yeah. I see that it's in the public domain
20:56:24Mat2Sergio965: http://www.cpm.z80.de/source.html
20:56:29BitPuffinEXetoC: yep
20:56:29Sergio965It's on operating system development in high level languages.
20:56:42BitPuffinEXetoC: what kind of concerns were expressed?
20:56:45Sergio965Mat2: What's this?
20:57:43EXetoCBitPuffin: what you said about countries without copyright laws
20:57:55Mat2the sources of all DRI operating-systems (and one main source of "influences" for Microsoft beside the Digital VMS one)
20:58:01EXetoCprobably something else that I missed, but I'm not worried anymore
20:58:12BitPuffinEXetoC: ah okay, well like I said, pretty much anything that doesn't have anything to do with public domain in the unlicense still holds true
20:58:42Mat2mostly C and PL/M, should be easily convertible to Rust or any other HLL with hype this day (as long as not functional)
20:58:56*Trix[a]r_za is now known as Trixar_za
20:59:10Sergio965I've written a couple of operating systems in C.
20:59:22Sergio965The goal here is for higher-than-C level languages.
20:59:27EXetoCI've written hello world in C
20:59:27Sergio965Ideally, without ever using a line of C code.
20:59:48EXetoCyeah, it's unnecessary in this day and age
21:00:11Mat2no problem, just inline assembler routines instead :D
21:00:12EXetoCunless of course you work in the industry or something like that :>
21:00:25*BitPuffin wouldn't even call asm unnecessary
21:01:23EXetoCno not asm
21:02:31Sergio965ASM is necessary.
21:02:35Sergio965Unfortunately.
21:02:37Araqhmm lets see: easy overflow checking, no undefined behaviour, chance for a real macro preprocessor ... yep ASM >> C
21:03:14EXetoC:>
21:03:18comexnope, asm has undefined behavior :)
21:03:50comexdepending on the processor of course
21:04:33Araqalright alright
21:04:39Araqbut much less so than C
21:04:39Mat2Sergio965: no really, this operating-systems where designed for easily porting and pioneered the use of high-level languages (PL/M is an PL/1 descendent). It would be an easy port as the sources are already good factored so it would be easy to use all of this important language features such as hash-tables etc.
21:08:36Mat2(in fact better than porting FreeDOS)
21:08:41Araqcomex: there is no room in asm for i++ = ++i; bullshit bingo, no broken type system, no control flow abstraction so co-routines and continuations are easy to implement
21:08:58Mat2I agree
21:09:12Araqetc. etc. C is a very poor substitute for assembler
21:09:56Mat2ANsi C is portable, you will only need a PDP11 *lol*
21:15:05*Endy quit (Ping timeout: 256 seconds)
21:15:16Sergio965I'm not porting anything..
21:15:22Sergio965I'm writing my own.
21:15:24Sergio965Part of the fun.
21:15:42Araqheck even ASM's syntax composes better than C's as it has no expr/stmt split
21:16:17Sergio965I love C.
21:16:26Sergio965Really, one of my favorite languages.
21:16:31Mat2and modern macro assemblers tend to be more high-level oriented as C
21:16:40AraqMat2: yep
21:17:26Mat2Sergio965: What was your first programming-language ? (probably BASIC?)
21:17:32AraqSergio965: your love is however not based on any technical merits of the language as there are none :P
21:18:39Araqwhat's unique to C is also very problematic: type declaration order and array/pointer conflation
21:19:07Araqand that's from C's author, not my opinion btw
21:19:11Araqbbl
21:26:39comexAraq: and yet none of the replacements do what C does as well as it
21:26:44comexincluding nimrod, or my language
21:26:47dom96This talk is pretty good: http://vimeo.com/71278954
21:27:19Mat2comex: What does C well ?
21:30:11comexbeing low-level yet portable, powerful yet very simple
21:32:43Mat2the ANSI C standard includes only a minimal set of libraries and define importent aspects of these language as implementation dependent, only specifying usability ranges
21:33:41Mat2this lead to some, really hard to detect incompatibilities, specially for ports between different processor architectures
21:34:10comexmost of them are unavoidable if you don't want to compromise on performance
21:35:31Mat2no, these are side-effects of the language specification (which is in fact still incomplete)
21:35:56comexbe specific
21:36:35Mat2for example: Defining an union do not garantees compiling endian agnostic code
21:36:52comexhuh?
21:37:23comexwhat do you mean?
21:38:26Mat2typedef struct {uint8_t bytes[8]; uint64_t word;} uTest;
21:38:59comexdon't do that
21:39:00*Associat0r joined #nimrod
21:39:00*Associat0r quit (Changing host)
21:39:00*Associat0r joined #nimrod
21:39:04Mat2accessing bytes[n] is an implementation specific detail
21:41:45Mat2sorry, but unions where original intended as platform independent abstraction for accessing memory
21:41:46comexof course it's implementation specific, the way that 'word' is stored depends on the machine
21:42:07comexand may not even be big or little endian
21:42:17comexwhat would you expect it to do?
21:42:51Mat2imlicit conversion dependent of the endianess ?
21:43:28comexit's intended to be exactly that, an abstraction for accessing memory, not some magic thing that converts for you
21:43:49comexand what endianness would you expect it to use?
21:43:56Sergio965Mat2: PHP, unfortunately.
21:44:36Mat2the native one used by the processor architecture of course
21:45:29EXetoCI guess most people assume that it's going to work like that
21:45:38comexthat's what it does
21:45:39EXetoCas you do, in many cases
21:45:39Mat2my point is: That's because there was introduced by the authors of C originally !!!!
21:45:48EXetoCok fine :p
21:45:49comexit uses the processor architecture's endianness - well, you are supposed to use char instead of uint8_t
21:46:10Mat2that don't make a difference
21:46:21comexsince the implementation defines the existence of an architecture that supports endianness at all, it must define the semantics of that operation
21:46:32Mat2try compiling such code for an embedded CPU !
21:46:51comexoh, you're right, char vs uint8_t doesn't matter in this case
21:46:58comexMat2: what kind of CPU?
21:47:02comexwhat do you mean?
21:47:15EXetoCbare metal targets
21:47:30comexit works as expected...
21:48:28*Sergio965 quit (Ping timeout: 264 seconds)
21:48:52Mat2it don't - it depend on the compiler you are using. GCC takes care of such details for example but most C compilers from the chip vendors do not
21:49:48comexthis is not a problem with the c specification, it's a problem with those compilers
21:50:49Mat2no, its a specification problem because the standard do not force endian handling !
21:51:27Mat2(and that's only a minor example, there are much more frustrated embedded developers can tell you)
21:53:13Mat2sometimes some C code is not even portable inside the same processor family
21:53:55Mat2(like for some PIC MCU lines)
21:55:33Mat2take a look at the Linux kernel with all its preprocessor happenings for example ;)
21:55:49Mat2or better the much more portable NetBSD one
21:56:53Mat2both are only portable (beside platform specific code) using the GCC compiler
21:57:07Mat2because of this mess
21:58:03Mat2(ok, I hope the BSD folk finishing there effort one day switching to LLVM)
22:08:54*OrionPK joined #nimrod
22:13:22Mat2get some sleep, ciao
22:13:26*Mat2 quit (Quit: Verlassend)
22:15:30*gradha joined #nimrod
22:24:17BitPuffinEXetoC: are there any issues left for your pull request?
22:24:22BitPuffinAre you having thunder btw?
22:25:50EXetoCI can't remember. maybe something that doesn't work with the current compiler
22:25:53EXetoCnope
22:31:27BitPuffinEXetoC: hmm, I'll have a look, but I have to turn off now because thunder
22:35:50*BitPuffin quit (Ping timeout: 245 seconds)
22:39:21Araqcomex: C++, Ada, Delphi, Nimrod, D and Rust all do better than C what C "does"
22:39:52AraqAda in particular lets you define structs down to the bit level
22:57:09gradhahmm... if the backslash is not an escape character in a raw string literal, how do I escape a " character?
22:58:54Araqhi gradha
22:58:55gradhaI can upgrade to r"""foo\"bar""", but I'm interested in writing the equivalent like r"foo\"bar"
22:58:58gradhahi Araq
22:59:19Araq"""foo"bar""" # should work
22:59:52Araqno need to escape since only """[^"] is a string ending
23:00:07gradhaso no way to do it without triple quotes?
23:00:19Araq"foo\"bar" ?
23:00:26gradhar"foo\"bar"
23:00:40gradhathe raw string literal is the problem
23:00:41Araqwell if you use 'r', you don't want escapes
23:00:48gradhayeah, I know
23:00:53gradhaI just like asking for the impossible
23:01:04Araqr"foo" & "\"" & r"bar"
23:01:14gradhaoh, clever
23:02:02gradhadoes that happen at compile time too like C string literal concatenation?
23:03:18Araqsure
23:03:41gradhabtw, congrats on having Nimrod used in a real world project http://forum.nimrod-code.org/t/189
23:05:10*alexandrus quit ()
23:05:17Araqfor me the compiler is a real world project ...
23:09:15gradhaso, have you heard recently of any new fancy kpop songs?
23:12:09EXetoCit is, yeah
23:28:30Araqgradha: I don't think anybody except dom96 shares your kpop weakness :P
23:30:57gradhathat's new, I thought nobody else listened to it (Miku Hatsune is jpop)
23:33:06gradhawould you like me to introduce associative arrays (aka tables module) at the end of the tutorial's 1st part?
23:33:33Araqis tut 1 still too slim?
23:33:56Araqwhat about starting a new tutorial that's a guide through the common parts of stdlib?
23:34:00*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
23:34:06Araqnice ...
23:34:26*gradha joined #nimrod
23:35:11gradhaI'd first need to know what are the common parts of the stdlib
23:35:21Araqprelude.nim defines it
23:35:57Araqinclude prelude # knowbody knows about this :P
23:36:02gradhame neither
23:37:06AraqI guess it should also import re
23:37:19*Trixar_za is now known as Trix[a]r_za
23:37:19Araqbut hey, that's not pure
23:37:40Araqoh and nowadays also sequtils I guess
23:38:24gradhathe other day a java programmer was complaining about xcode objc not being able to automatically add #import "file", maybe you should just include the whole stdlib by default and be done?
23:38:59Araqand unicode, encoding, marshal, math, algorithm, ...
23:39:12Araqosproc
23:39:26gradhahere's an idea: implement "exclude" to avoid importing what you don't want
23:39:49Araqand subexes ... ah the great subexes failure
23:40:05gradhaof course, first hello world compilation would triggers a babel trip to download everything just in case
23:40:22Araqlatex-style, I like it
23:40:49Araq"gah, I dunno, just download everything so my LaTeX file compiles"
23:41:35gradhayou know if you are from the past if you still use latex instead of lout
23:41:50Araq"and yes, it's really an UTF-8 file and that's really an umlaut here ..."
23:42:08gradhaoi, that reminds be about nimrod source encodings and idetools columns
23:42:23Araqoh btw
23:42:26gradhabtw, you mentioned recent commits break idetools, more?
23:42:36Araqthe '*' makes colum wrong bug should be gone now
23:42:59Araqwell in theory I improved idetools slightly
23:43:07Araqin practice I might have broken it
23:43:57gradhahaven't bothered yet to merge idetools into the main test case suite because you would ignore it anyway
23:44:32gradhamaybe I should add some fancy reporting for those ugly tests
23:44:46reactormonkgradha, fancy is always good :-)
23:44:51Araqdiff reporting in the tester would be sweet
23:45:15Araqin fact, I refuse to release 0.9.4 without this feature of nimbuild
23:45:35gradhaplease ellaborate: does that require a persistent "previous test run" somewhere for comparison?
23:45:44reactormonkyup
23:45:48Araqyes
23:46:15Araqin fact
23:46:18gradhahmm.. sounds barely more interesting than upgrading nimforum, plus I might be able to implement it before dom96 merges the current PRs
23:46:23Araqevery test should track the commit that broke it
23:47:04Araqextra points if the commit is a link to github's nice diff pages
23:47:15reactormonkAraq, so you want to add test info to the git commits?
23:47:32Araqno I want to add commit info to the tests
23:49:27gradhaso how does a nimrod release depend on a feature present in an external package like nimbuild?
23:50:09AraqI dunno, ask my brain
23:50:43gradhaok, I'll see what I can do about nimbuild, then I'll ask your brain about making Aporia compilable under macosx
23:51:13*Endeg quit (Read error: Connection reset by peer)
23:51:15reactormonkAraq, and where to store the info?
23:51:28Araqtry to bootstrap with --gc:boehm or --gc:none and see if the resulting compiler can compile Aporia please
23:51:28gradhasqlite?
23:51:39Araqsome crappy.json file?
23:51:46reactormonkand how do you ship that one around?
23:51:49Araqwe already generate one anyway for nimbuild
23:52:19Araqand we already ship tests results to the nexus or whatever dom96 called the center
23:52:53gradhathe nexus? starcraft terminology?
23:53:18Araqthe hive
23:54:18gradhasome class names in one of my past projects: SSOverlord, SSQueen, SSZerg
23:55:10gradhathe android port had Overlord, Lurker and Broodling
23:55:33Araqah dom96 called it the "hub" :-)
23:55:59gradhahow boring, my SSOverlord class has a ventral_sacs property
23:57:44gradhaso for nimbuild I would add a storage of commit hashes and their test results
23:57:56gradhawhenever the test suite runs, it stores for that commit the result of each test
23:57:58Araq"the following code is extremely slow and complicated." lol
23:58:12gradhawith that info, you grow a map of points in time when tests worked
23:58:25gradhalinking those through git commit history you know when stuff presumably broke
23:58:36gradhaand from that info you theorically get those diffs you want
23:59:03gradhadoes the current nimbuild always build the current commit or can you tell it to build an arbitrary one?
23:59:19Araqwell it tracks commit hashes
23:59:30gradhathat would be wanted to go back in time before the feature is implemented, to fill previous entries in time
23:59:31AraqI don't think it can build anything except the latest
23:59:58Araqno need to go back in time