00:00:01 | Araq | flaviu: it's a solved problem |
00:00:28 | Jehan_ | Varriount: See, e.g. http://gperftools.googlecode.com/svn/trunk/INSTALL |
00:00:37 | Varriount | What about a way to add a compacting gc to nimrod? is that a solved problem? |
00:00:48 | flaviu | The fix for #124 is borrow analyses, a la Rust |
00:01:02 | flaviu | Araq: Please elaborate |
00:01:11 | Jehan_ | Varriount: Insofar as the technology is pretty well understood. |
00:01:22 | Jehan_ | Still a lot of work to write. |
00:01:40 | Jehan_ | Especially if you want to keep conservative stack scanning. |
00:02:25 | Araq | flaviu: no, the fix is a form of alias analysis |
00:02:38 | Araq | you don't need borrow checking for it |
00:03:33 | Jehan_ | flaviu: It's mostly just that you can't return local variables. |
00:04:09 | Jehan_ | Both global variables and heap-allocated memory should be okay. |
00:04:22 | Jehan_ | (The latter with a stack scan that tests for interior pointers.) |
00:04:39 | flaviu | Jehan_: Ok, thanks. |
00:04:57 | Jehan_ | You don't need borrowing for the heap if you have GC. |
00:05:02 | Jehan_ | Well, not for memory safety at least. |
00:05:16 | * | darkf joined #nimrod |
00:05:24 | Jehan_ | It may still be desirable for other purposes. |
00:09:27 | * | wkoch joined #nimrod |
00:10:59 | * | wkoch quit (Client Quit) |
00:12:10 | flaviu | Araq: Can you elaborate on the type safe variants? |
00:12:29 | Araq | well what's your question? |
00:13:00 | Araq | with the right warning flag that I've forgotten the compiler tells you "warning: cannot prove field access" |
00:13:23 | Araq | make it an error and it's on par with what ML does |
00:13:37 | Araq | well strictly speaking, it's not |
00:14:41 | Araq | but the cases which make the analysis unsound are rather academic |
00:16:18 | Araq | the other issue that the roadmap mentions is variant branch switching via the loophole that assignments from low(selectorType) are allowed |
00:16:46 | Varriount | Isn't that a case of self-inflicted stupidity though? |
00:16:47 | Araq | we can disallow that. |
00:16:54 | Araq | Problem solved. |
00:17:08 | Araq | btw the entire VM relies on the feature |
00:17:35 | Varriount | Is that a good thing? |
00:18:01 | Araq | no, but it proves that it is *really* useful |
00:18:28 | Varriount | Araq: How exactly does the VM use this exploit? |
00:20:12 | Jehan_ | In general, however, I wouldn't worry about programmers subverting typechecking. |
00:20:41 | Jehan_ | If they do it, they tend to do it for a purpose; what typechecking should protect against is accidental mistakes. |
00:21:52 | Araq | Varriount: vm.myreset calls reset |
00:22:10 | Araq | afterwards the 'kind' of the register is set somehow |
00:22:17 | Araq | and then the fields are filled |
00:22:39 | Araq | you need to merge these operations for strict memory safety |
00:23:12 | Varriount | Araq: I know what the VM needs. |
00:23:22 | Varriount | Araq: Multithreading. :3 |
00:23:39 | Araq | the only real problem is that the selector assignments do not stick out as unsafe |
00:24:09 | Araq | the rest of the language uses keywords 'addr' and 'cast' for unsafe features |
00:24:30 | Araq | so these sections can easily be extensively reviewed |
00:25:30 | Araq | var 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:43 | Varriount | Interesting... |
00:30:11 | Varriount | My cpu is being used so much that I can actually see individual characters being printed onto the consoles. |
00:31:26 | flaviu | Varriount: You should have seen my comptuer when I overclocked it |
00:31:27 | Jehan_ | Varriount: That's what having multiple computers is for. :) |
00:31:48 | flaviu | It was causing so many problems that I had a load average of 22. |
00:32:54 | Varriount | flaviu: Uh.. my experience with load averages isn't that great, but aren't those usually under 5? |
00:33:01 | flaviu | Yep |
00:35:43 | Araq | hrm the latest release didn't even have an old fashioned .zip |
00:35:47 | Araq | *last |
00:36:02 | Jehan_ | Varriount: load average is the average number of "ready" processes in the queue. |
00:36:16 | Jehan_ | I.e. a measure of the number of processes competing for CPU time. |
00:36:27 | Araq | no wonder it doesn't work anymore |
00:36:34 | flaviu | Jehan_: 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:03 | Araq | Varriount: upload these new mingws somewhere please |
01:06:09 | Araq | see 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:16 | NimBot | nimrod-code/packages master f985b24 Will Szumski [+0 ±1 -0]: added openssl_evp |
03:32:16 | NimBot | nimrod-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:13 | Varriount | Araq: 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:42 | Varriount | Araq: 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:25 | Varriount | Araq: 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:24 | Varriount | If 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:51 | Varriount | Araq: 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:03 | Araq | Varriount: 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:14 | NimBot | Araq/Nimrod devel fa3545c Simon Krauter [+0 ±1 -0]: Raise exception on adding a non-existent file to a zip archive |
11:49:14 | NimBot | Araq/Nimrod devel d526e05 Simon Krauter [+0 ±1 -0]: Code more cleaner |
11:49:14 | NimBot | Araq/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:43 | NimBot | Araq/Nimrod devel ca4c64d Araq [+0 ±2 -0]: zipfile generation works again |
12:18:43 | NimBot | Araq/Nimrod devel 4233aa9 Araq [+0 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
12:18:43 | NimBot | Araq/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:55 | Lorxu | Hi |
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:56 | flaviu | Hey Lorxu! |
16:19:56 | Lorxu | Hey 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:02 | Varriount | Araq: Ping |
18:55:29 | Araq | pong |
18:56:13 | Araq | Varriount: pong |
18:57:35 | Varriount | Araq: 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:22 | Araq | well that's bad |
18:58:49 | Araq | but it's not hard to fix |
18:59:05 | Araq | trimcc uses itself to see if the c++ installation still works |
18:59:08 | Varriount | Oh, and when I try to move the dependancy for testing mixed mode to another executable, I get a linker error. |
18:59:31 | Araq | I was about to suggest just that |
18:59:58 | Araq | but come on |
19:00:11 | Araq | so don't test mixed mode, but old fashioned c++ mode instead |
19:00:33 | Araq | mixed mode has some inherent problems, I figured |
19:00:36 | Varriount | Araq: Also, is vector.h the only header that c++/mixed mode requires? |
19:00:53 | Araq | well no. but it's a start |
19:01:08 | Varriount | Because trimcc removes the entire c++ stdlib |
19:01:31 | Araq | restorecc is in bigbreak |
19:01:54 | Araq | I used that to restore stuff that I deleted but turned out to be necessary |
19:02:05 | Araq | ;-) |
19:02:10 | Varriount | Eh.. howso? |
19:02:18 | Araq | well I had: |
19:02:20 | Araq | mingw/ |
19:02:24 | Araq | mingw_backup/ |
19:02:32 | Araq | and then it said things like |
19:02:38 | Varriount | From what I can tell, trimcc calls removeFile() on files that it deems unneccessary |
19:02:46 | Araq | cannot find <sys/foo.h> |
19:02:54 | Araq | and I did: |
19:03:00 | Araq | restorecc foo.h |
19:03:13 | Araq | *any* foo.h is then copied over from mingw_backup to mingw |
19:04:15 | Araq | I used a tool for this because the directory structure in mingw is confusing |
19:04:29 | Araq | and some of these dirs never end ... |
19:04:34 | Araq | <insert rant here> |
19:06:14 | EXetoC | would you default to VC had it been redistributable? |
19:06:50 | Araq | yup |
19:13:01 | Varriount | Except that your now forced to download Visual Studio if you need VC. |
19:13:10 | Varriount | Which is about 4 GB |
19:44:02 | Varriount | Araq: cpp mode doesn't work either - I get different gcc errors |
19:44:18 | Araq | Varriount: there is however a special rule that no header in "c++" gets removed |
19:45:12 | Varriount | error: invalid conversion from 'NI16* {aka short int*}' to 'const wchar_t*' |
19:45:21 | * | dom96_ joined #nimrod |
19:53:59 | Varriount | Araq: Do you have any specific environment variables set specifying where to look for header files and libraries? |
19:54:06 | Araq | nope |
19:54:24 | Araq | but I think more recent g++ versions are stricter wrt typing rules |
19:55:45 | Varriount | Also, gcc doesn't use C++ headers |
19:56:10 | Varriount | When 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:58 | Varriount | Oh 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:46 | Araq | well it looks like we miss the deadline again |
20:19:11 | Araq | dom96_: I think porting the new async stuff to 0.9.6 is too much work |
20:19:23 | Araq | what about things like AsyncSocket vs asyncSocket? |
20:20:14 | Varriount | Araq: Well, I could just ignore the C++ stuff |
20:20:52 | * | nande joined #nimrod |
20:22:13 | dom96_ | Araq: alright |
20:28:23 | Varriount | Araq: Did you run trimcc while testing the BigBreak branch, or the devel branch? |
20:28:44 | Araq | bigbreak |
20:29:19 | Varriount | Bah. After yesterday, I thought I was supposed to run a trimcc compiled from bigbreak on a devel branch of nimrod |
20:29:59 | Araq | does it matter much? |
20:30:15 | Varriount | Who knows? It might |
20:32:50 | Araq | nah |
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:07 | Varriount | Heh. Redirecting robocopy's output to NUL speeds it up. |
21:28:22 | Varriount | Araq: Running trimcc on devel based nim doesn't work. Running it on a bigbreak based nim does. |
21:28:49 | Onionhammer | hello gentlemen |
21:29:00 | Trustable | Hi |
21:29:34 | * | Demos joined #nimrod |
21:29:36 | Varriount | Trustable: Are you trustworthy? :3 |
21:30:21 | Trustable | I'm tired of this joke |
21:30:40 | Varriount | Trustable: Then give me a joke you aren't tired of. |
21:37:18 | Araq | Varriount: why does that matter? |
21:37:37 | Araq | it's only to generate a minimal mingw |
21:38:47 | Onionhammer | minimal mingw? |
21:49:04 | EXetoC | robocopy. 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:36 | Onionhammer | is there any random function in the std lib that takes a seed |
22:01:02 | Onionhammer | ah i see, randomize |
22:06:27 | wan | Hi all |
22:07:14 | Onionhammer | is there a hashset equivalent in nim? or just use tables |
22:07:41 | Onionhammer | ah sets.. |
22:08:29 | wan | I 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:35 | Araq | did you reinvent --verbosity:0 ? |
22:11:53 | wan | Well, it's not verbosity=0 because it displays something |
22:12:24 | wan | It 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:20 | Trustable | Offtopic: Anyone want to laugh about C++? Watch this speech: https://www.youtube.com/watch?v=48kP_Ssg2eY |
22:27:40 | Araq | already saw it, didn't convince me |
22:32:56 | * | jasondotstar quit (Ping timeout: 260 seconds) |
22:34:30 | Araq | wan: your patch seems ok but I dislike how bloated everything is becoming |
22:34:40 | * | jasondotstar joined #nimrod |
22:46:45 | wan | I 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:44 | Araq | well another solution is that osproc.startProcesses() takes a callback "beforeRunEvent(cmd: string)" |
22:48:59 | Araq | where you can output things or not |
22:51:43 | wan | That 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:35 | Varriount | Araq: I don't know, are there any codegen changes in BigBreak that aren't in devel? |
22:54:42 | Araq | Varriount: well yes, but I don't see the problem |
22:55:23 | Varriount | Araq: Well whatever the changes are, BigBreak's mixed mode works, devel's doesn't. |
22:55:43 | Araq | devel doesn't even have a mixed mode |
22:55:56 | Varriount | Which explains why I was getting errors. |
23:03:34 | Araq | well good night |
23:03:37 | * | ARCADIVS joined #nimrod |
23:03:52 | Varriount | Araq: I'll have the mingw binaries uploaded in the morning. |
23:04:07 | Araq | we'll see about that :P |
23:04:31 | Araq | no worries, 0.9.6 is actually a pretty unimportant release afaict |
23:04:46 | Araq | almost no new features or fixes |
23:05:09 | Varriount | Well, 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 |