<< 12-10-2014 >>

00:00:01Araqflaviu: it's a solved problem
00:00:28Jehan_Varriount: See, e.g. http://gperftools.googlecode.com/svn/trunk/INSTALL
00:00:37VarriountWhat about a way to add a compacting gc to nimrod? is that a solved problem?
00:00:48flaviuThe fix for #124 is borrow analyses, a la Rust
00:01:02flaviuAraq: Please elaborate
00:01:11Jehan_Varriount: Insofar as the technology is pretty well understood.
00:01:22Jehan_Still a lot of work to write.
00:01:40Jehan_Especially if you want to keep conservative stack scanning.
00:02:25Araqflaviu: no, the fix is a form of alias analysis
00:02:38Araqyou don't need borrow checking for it
00:03:33Jehan_flaviu: It's mostly just that you can't return local variables.
00:04:09Jehan_Both global variables and heap-allocated memory should be okay.
00:04:22Jehan_(The latter with a stack scan that tests for interior pointers.)
00:04:39flaviuJehan_: Ok, thanks.
00:04:57Jehan_You don't need borrowing for the heap if you have GC.
00:05:02Jehan_Well, not for memory safety at least.
00:05:16*darkf joined #nimrod
00:05:24Jehan_It may still be desirable for other purposes.
00:09:27*wkoch joined #nimrod
00:10:59*wkoch quit (Client Quit)
00:12:10flaviuAraq: Can you elaborate on the type safe variants?
00:12:29Araqwell what's your question?
00:13:00Araqwith the right warning flag that I've forgotten the compiler tells you "warning: cannot prove field access"
00:13:23Araqmake it an error and it's on par with what ML does
00:13:37Araqwell strictly speaking, it's not
00:14:41Araqbut the cases which make the analysis unsound are rather academic
00:16:18Araqthe other issue that the roadmap mentions is variant branch switching via the loophole that assignments from low(selectorType) are allowed
00:16:46VarriountIsn't that a case of self-inflicted stupidity though?
00:16:47Araqwe can disallow that.
00:16:54AraqProblem solved.
00:17:08Araqbtw the entire VM relies on the feature
00:17:35VarriountIs that a good thing?
00:18:01Araqno, but it proves that it is *really* useful
00:18:28VarriountAraq: How exactly does the VM use this exploit?
00:20:12Jehan_In general, however, I wouldn't worry about programmers subverting typechecking.
00:20:41Jehan_If they do it, they tend to do it for a purpose; what typechecking should protect against is accidental mistakes.
00:21:52AraqVarriount: vm.myreset calls reset
00:22:10Araqafterwards the 'kind' of the register is set somehow
00:22:17Araqand then the fields are filled
00:22:39Araqyou need to merge these operations for strict memory safety
00:23:12VarriountAraq: I know what the VM needs.
00:23:22VarriountAraq: Multithreading. :3
00:23:39Araqthe only real problem is that the selector assignments do not stick out as unsafe
00:24:09Araqthe rest of the language uses keywords 'addr' and 'cast' for unsafe features
00:24:30Araqso these sections can easily be extensively reviewed
00:25:30Araqvar T as a return type and the edge case for variants are notable exceptions and so ultimately need to be fixed
00:26:14*BlaXpirit-UA quit (Quit: Quit Konversation)
00:29:43VarriountInteresting...
00:30:11VarriountMy cpu is being used so much that I can actually see individual characters being printed onto the consoles.
00:31:26flaviuVarriount: You should have seen my comptuer when I overclocked it
00:31:27Jehan_Varriount: That's what having multiple computers is for. :)
00:31:48flaviuIt was causing so many problems that I had a load average of 22.
00:32:54Varriountflaviu: Uh.. my experience with load averages isn't that great, but aren't those usually under 5?
00:33:01flaviuYep
00:35:43Araqhrm the latest release didn't even have an old fashioned .zip
00:35:47Araq*last
00:36:02Jehan_Varriount: load average is the average number of "ready" processes in the queue.
00:36:16Jehan_I.e. a measure of the number of processes competing for CPU time.
00:36:27Araqno wonder it doesn't work anymore
00:36:34flaviuJehan_: I have a 4 core CPU, so it's still quite large
00:52:42*dom96_ quit (Ping timeout: 250 seconds)
00:53:08*dom96_ joined #nimrod
01:06:03AraqVarriount: upload these new mingws somewhere please
01:06:09Araqsee you tomorrow, good night
01:30:57*Jessin joined #nimrod
01:31:11*Jesin quit (Disconnected by services)
01:31:15*Jessin is now known as Jesin
01:33:09*Jesin quit (Read error: Connection reset by peer)
01:33:29*Jesin joined #nimrod
01:33:55*saml_ joined #nimrod
01:38:37*Jesin quit (Ping timeout: 260 seconds)
01:40:49*saml_ quit (Ping timeout: 272 seconds)
01:54:03*saml_ joined #nimrod
01:54:10*Jehan_ quit (Quit: Leaving)
02:04:02*saml_ quit (Ping timeout: 245 seconds)
02:09:25*flaviu quit (Ping timeout: 260 seconds)
02:15:38*brson quit (Quit: leaving)
02:17:49*saml_ joined #nimrod
02:18:14*flaviu joined #nimrod
02:23:57*saml_ quit (Ping timeout: 245 seconds)
02:38:02*saml_ joined #nimrod
02:44:20*saml_ quit (Ping timeout: 260 seconds)
02:46:38*EXetoC quit (Quit: WeeChat 1.0.1)
02:48:52*bjz quit (Ping timeout: 255 seconds)
02:49:22*jasondotstar quit (Ping timeout: 245 seconds)
02:57:10*saml_ joined #nimrod
03:03:51*saml_ quit (Ping timeout: 246 seconds)
03:03:53*jasondotstar joined #nimrod
03:09:52*flaviu quit (Ping timeout: 240 seconds)
03:17:06*saml_ joined #nimrod
03:28:14*shodan45 quit (Quit: Konversation terminated!)
03:32:16NimBotnimrod-code/packages master f985b24 Will Szumski [+0 ±1 -0]: added openssl_evp
03:32:16NimBotnimrod-code/packages master ef057e5 Dominik Picheta [+0 ±1 -0]: Merge pull request #89 from cowboy-coders/master... 2 more lines
04:06:32*bjz joined #nimrod
04:43:03*q66[lap] quit (Read error: Connection reset by peer)
04:43:44*q66[lap] joined #nimrod
04:46:36*Sembei quit (Ping timeout: 260 seconds)
05:12:52*jasondotstar quit (Ping timeout: 255 seconds)
05:17:53*jasondotstar joined #nimrod
05:22:47*jasondotstar quit (Ping timeout: 258 seconds)
05:27:27*dom96_ quit (Remote host closed the connection)
05:54:13VarriountAraq: There's another thing that trimcc ignores when trimming files: License files
05:54:47*Lorxu quit (Ping timeout: 245 seconds)
05:56:11*xenagi joined #nimrod
06:32:34*kemet joined #nimrod
06:37:22*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
06:37:36*kemet quit (Quit: Instantbird 1.5 -- http://www.instantbird.com)
06:39:39*q66[lap] joined #nimrod
06:47:48*saml_ quit (Quit: Leaving)
06:55:18*vezzy joined #nimrod
06:55:57*quasinoxen quit (Ping timeout: 260 seconds)
07:00:09*xenagi quit (Read error: Connection reset by peer)
07:01:28*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
07:01:47*q66[lap] joined #nimrod
07:03:42VarriountAraq: I've made a few modifications to the trimcc utility. It now only warns when it encounters file it can't remove, skips the exception handling dll's, and tests the koch and trimcc executables it generates.
07:11:25VarriountAraq: Also, a better way to filter out required files, while still going somewhat faster than trying one-by-one, would be to use a multi-pass system with a variable bucket count.
07:12:24VarriountIf a batch of removed files succeeds, increase or keep constant the bucket size. If the batch doesn't succeed, decrease the bucket size.
07:19:14*vezzy quit (Ping timeout: 250 seconds)
07:36:28*ARCADIVS joined #nimrod
07:39:22*bjz quit (Ping timeout: 240 seconds)
08:03:51VarriountAraq: Exceptions don't seem to be working on the C++ target. My catch statements are being ignored.
08:12:42*BlaXpirit joined #nimrod
08:20:01*bjz joined #nimrod
08:20:03AraqVarriount: c++ target or mixed mode? mixed mode doesn't work yet, i think
08:30:25*jasondotstar joined #nimrod
08:33:11*Ven joined #nimrod
08:37:15*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
08:56:04*johnsoft quit (Ping timeout: 255 seconds)
08:56:16*johnsoft joined #nimrod
09:00:02*johnsoft quit (Read error: Connection reset by peer)
09:00:19*johnsoft joined #nimrod
09:04:34*q66[lap] joined #nimrod
09:31:50*Ven quit (Ping timeout: 250 seconds)
09:33:37*jasondotstar quit (Ping timeout: 260 seconds)
09:36:00*Ven joined #nimrod
10:08:09*Sembei joined #nimrod
10:09:08*Matthias247 joined #nimrod
10:20:36*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:30:44*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
10:42:02*Trustable joined #nimrod
10:49:15*zahary joined #nimrod
11:01:04*jasondotstar joined #nimrod
11:04:50*EXetoC joined #nimrod
11:07:40*Ven joined #nimrod
11:33:11*q66[lap] joined #nimrod
11:38:31*will joined #nimrod
11:49:14NimBotAraq/Nimrod devel fa3545c Simon Krauter [+0 ±1 -0]: Raise exception on adding a non-existent file to a zip archive
11:49:14NimBotAraq/Nimrod devel d526e05 Simon Krauter [+0 ±1 -0]: Code more cleaner
11:49:14NimBotAraq/Nimrod devel cb7c485 Andreas Rumpf [+0 ±1 -0]: Merge pull request #1564 from trustable-code/devel... 2 more lines
11:53:00*shevy left #nimrod ("I'll be back ... maybe")
11:58:42*bjz quit (Ping timeout: 244 seconds)
12:18:43NimBotAraq/Nimrod devel ca4c64d Araq [+0 ±2 -0]: zipfile generation works again
12:18:43NimBotAraq/Nimrod devel 4233aa9 Araq [+0 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
12:18:43NimBotAraq/Nimrod devel b7befd6 Araq [+0 ±1 -0]: updated news.txt slightly
12:22:14*kshlm joined #nimrod
12:41:29*bjz joined #nimrod
12:57:39*darkf quit (Quit: Leaving)
13:30:55*untitaker quit (Ping timeout: 258 seconds)
13:36:30*untitaker joined #nimrod
13:54:35*Trustable quit (Remote host closed the connection)
13:56:50*brson joined #nimrod
13:57:10*Trustable joined #nimrod
14:01:35*ARCADIVS quit (Quit: WeeChat 0.4.3)
14:28:35*brson quit (Quit: leaving)
14:30:20*Trustable quit (Remote host closed the connection)
14:33:10*Trustable joined #nimrod
14:43:40*quasinoxen joined #nimrod
14:58:55*flaviu joined #nimrod
15:33:35*io2 joined #nimrod
15:41:20*nande joined #nimrod
15:43:55*Lorxu joined #nimrod
15:43:55LorxuHi
16:02:21*wkoch joined #nimrod
16:02:51*wkoch quit (Client Quit)
16:05:41*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
16:07:16*kshlm quit (Ping timeout: 258 seconds)
16:07:56flaviuHey Lorxu!
16:19:56LorxuHey flaviu
16:55:21*Trustable quit (Quit: Leaving)
16:56:21*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:13:41*brson joined #nimrod
17:19:20*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
17:30:25*brson quit (Quit: leaving)
17:30:37*brson joined #nimrod
17:36:37*jasondotstar quit (Ping timeout: 260 seconds)
17:42:48*zahary quit (Ping timeout: 244 seconds)
18:05:06*fowlmouth quit (Quit: Leaving)
18:16:04*jasondotstar joined #nimrod
18:31:26*q66[lap] joined #nimrod
18:35:40*q66[lap] quit (Ping timeout: 250 seconds)
18:54:02VarriountAraq: Ping
18:55:29Araqpong
18:56:13AraqVarriount: pong
18:57:35VarriountAraq: I'm having problems with trimming down mingw. Either trimcc can't move/remove a file, and errors (and try..catch doesn't work, because it's being compiled in mixed mode) or some essential header file gets removed and refuses to be brought back
18:58:22Araqwell that's bad
18:58:49Araqbut it's not hard to fix
18:59:05Araqtrimcc uses itself to see if the c++ installation still works
18:59:08VarriountOh, and when I try to move the dependancy for testing mixed mode to another executable, I get a linker error.
18:59:31AraqI was about to suggest just that
18:59:58Araqbut come on
19:00:11Araqso don't test mixed mode, but old fashioned c++ mode instead
19:00:33Araqmixed mode has some inherent problems, I figured
19:00:36VarriountAraq: Also, is vector.h the only header that c++/mixed mode requires?
19:00:53Araqwell no. but it's a start
19:01:08VarriountBecause trimcc removes the entire c++ stdlib
19:01:31Araqrestorecc is in bigbreak
19:01:54AraqI used that to restore stuff that I deleted but turned out to be necessary
19:02:05Araq;-)
19:02:10VarriountEh.. howso?
19:02:18Araqwell I had:
19:02:20Araqmingw/
19:02:24Araqmingw_backup/
19:02:32Araqand then it said things like
19:02:38VarriountFrom what I can tell, trimcc calls removeFile() on files that it deems unneccessary
19:02:46Araqcannot find <sys/foo.h>
19:02:54Araqand I did:
19:03:00Araqrestorecc foo.h
19:03:13Araq*any* foo.h is then copied over from mingw_backup to mingw
19:04:15AraqI used a tool for this because the directory structure in mingw is confusing
19:04:29Araqand some of these dirs never end ...
19:04:34Araq<insert rant here>
19:06:14EXetoCwould you default to VC had it been redistributable?
19:06:50Araqyup
19:13:01VarriountExcept that your now forced to download Visual Studio if you need VC.
19:13:10VarriountWhich is about 4 GB
19:44:02VarriountAraq: cpp mode doesn't work either - I get different gcc errors
19:44:18AraqVarriount: there is however a special rule that no header in "c++" gets removed
19:45:12Varriounterror: invalid conversion from 'NI16* {aka short int*}' to 'const wchar_t*'
19:45:21*dom96_ joined #nimrod
19:53:59VarriountAraq: Do you have any specific environment variables set specifying where to look for header files and libraries?
19:54:06Araqnope
19:54:24Araqbut I think more recent g++ versions are stricter wrt typing rules
19:55:45VarriountAlso, gcc doesn't use C++ headers
19:56:10VarriountWhen run in mixed mode, it complained about not being able to find <vector>
20:00:43*rpag quit (*.net *.split)
20:00:43*def- quit (*.net *.split)
20:00:43*noam quit (*.net *.split)
20:00:44*kokozedman quit (*.net *.split)
20:00:44*Triplefox quit (*.net *.split)
20:00:58VarriountOh wonderful.
20:00:59*kokozedman joined #nimrod
20:01:08*rpag joined #nimrod
20:01:08*noam joined #nimrod
20:01:09*def-- joined #nimrod
20:01:14*def-- is now known as def-
20:01:52*Triplefox joined #nimrod
20:17:23*nande quit (Read error: Connection reset by peer)
20:18:46Araqwell it looks like we miss the deadline again
20:19:11Araqdom96_: I think porting the new async stuff to 0.9.6 is too much work
20:19:23Araqwhat about things like AsyncSocket vs asyncSocket?
20:20:14VarriountAraq: Well, I could just ignore the C++ stuff
20:20:52*nande joined #nimrod
20:22:13dom96_Araq: alright
20:28:23VarriountAraq: Did you run trimcc while testing the BigBreak branch, or the devel branch?
20:28:44Araqbigbreak
20:29:19VarriountBah. After yesterday, I thought I was supposed to run a trimcc compiled from bigbreak on a devel branch of nimrod
20:29:59Araqdoes it matter much?
20:30:15VarriountWho knows? It might
20:32:50Araqnah
20:43:42*Matthias247 quit (Read error: Connection reset by peer)
20:55:48*q66[lap] joined #nimrod
21:01:04*Trustable joined #nimrod
21:02:04*fowl joined #nimrod
21:10:01*Ven joined #nimrod
21:11:33*Trustable quit (Remote host closed the connection)
21:13:39*Trustable joined #nimrod
21:15:07VarriountHeh. Redirecting robocopy's output to NUL speeds it up.
21:28:22VarriountAraq: Running trimcc on devel based nim doesn't work. Running it on a bigbreak based nim does.
21:28:49Onionhammerhello gentlemen
21:29:00TrustableHi
21:29:34*Demos joined #nimrod
21:29:36VarriountTrustable: Are you trustworthy? :3
21:30:21TrustableI'm tired of this joke
21:30:40VarriountTrustable: Then give me a joke you aren't tired of.
21:37:18AraqVarriount: why does that matter?
21:37:37Araqit's only to generate a minimal mingw
21:38:47Onionhammerminimal mingw?
21:49:04EXetoCrobocopy. clever
21:52:20*johnsoft quit (Ping timeout: 260 seconds)
21:52:21*Lorxu quit (Ping timeout: 260 seconds)
21:53:09*johnsoft joined #nimrod
22:00:36Onionhammeris there any random function in the std lib that takes a seed
22:01:02Onionhammerah i see, randomize
22:06:27wanHi all
22:07:14Onionhammeris there a hashset equivalent in nim? or just use tables
22:07:41Onionhammerah sets..
22:08:29wanI got rid of some of the default ugly compiler boilerplate output today, if anyone's interested (here: https://github.com/Araq/Nimrod/pull/1569 . Maybe my first contribution to the compiler? Yay!)
22:11:00*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:11:35Araqdid you reinvent --verbosity:0 ?
22:11:53wanWell, it's not verbosity=0 because it displays something
22:12:24wanIt hides gcc long calls and replaces it with very short lines
22:13:05*gokr joined #nimrod
22:13:17*gokr quit (Remote host closed the connection)
22:19:20TrustableOfftopic: Anyone want to laugh about C++? Watch this speech: https://www.youtube.com/watch?v=48kP_Ssg2eY
22:27:40Araqalready saw it, didn't convince me
22:32:56*jasondotstar quit (Ping timeout: 260 seconds)
22:34:30Araqwan: your patch seems ok but I dislike how bloated everything is becoming
22:34:40*jasondotstar joined #nimrod
22:46:45wanI know, the stuff in osproc feels weird. I tried to not modify downhill (in startProcess) and limit the changes to the most practical level, so as to still have 'console progression' instead of 'console instant dump of all the lines'
22:47:24*Trustable quit (Quit: Leaving)
22:48:44Araqwell another solution is that osproc.startProcesses() takes a callback "beforeRunEvent(cmd: string)"
22:48:59Araqwhere you can output things or not
22:51:43wanThat could tidy it up a bit. It probably won't save many lines of code, but it could prevent execProcesses knowing about stuff it shouldn't be concerned with.
22:53:35VarriountAraq: I don't know, are there any codegen changes in BigBreak that aren't in devel?
22:54:42AraqVarriount: well yes, but I don't see the problem
22:55:23VarriountAraq: Well whatever the changes are, BigBreak's mixed mode works, devel's doesn't.
22:55:43Araqdevel doesn't even have a mixed mode
22:55:56VarriountWhich explains why I was getting errors.
23:03:34Araqwell good night
23:03:37*ARCADIVS joined #nimrod
23:03:52VarriountAraq: I'll have the mingw binaries uploaded in the morning.
23:04:07Araqwe'll see about that :P
23:04:31Araqno worries, 0.9.6 is actually a pretty unimportant release afaict
23:04:46Araqalmost no new features or fixes
23:05:09VarriountWell, plenty of bugfixes.
23:22:54*bjz quit (Ping timeout: 246 seconds)
23:32:29*fowl quit (Read error: Connection reset by peer)
23:46:49*Jesin joined #nimrod