Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2014-06-07

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:46 rurban joined #perl11
01:31 rurban joined #perl11
02:32 rurban joined #perl11
03:33 rurban joined #perl11
04:06 Will_the_Chill joined #perl11
04:10 bulk88 rurban_ https://github.com/rurban/B-Stats/commit/37ddc85c4c47a8e278665f10876c4efee3c67811 you shouldve done an ammend commit
04:10 bulk88 rather than make more noisy git history
04:11 bulk88 also I added per op timings to my B::Stats wrking dir
04:11 bulk88 and it sorta works
04:12 bulk88 no support for recursion (like magic callouts) though , but im not hitting any recursion in my test code
04:13 bulk88 Will_the_Chill you might be interesting in my latest experiment, but it seems to be heavily warnocked https://rt.perl.org/Ticket/Display.html?id=121923
04:13 Will_the_Chill looking
04:14 bulk88 "noxt" means no EXTEND(SP, 1) anywhere in the interp, ext is regular blead
04:15 bulk88 higher number means faster in the benchmark tables at the end
04:15 bulk88 lower number means slower than the 100"
04:15 bulk88 baseline at the left
04:15 Will_the_Chill can you give me the 1-sentence explanation of this new experiment, please?
04:16 Will_the_Chill a new VM of some kind?
04:16 Will_the_Chill oh, a new stack of some kind?
04:16 Will_the_Chill I don't get it.  :P
04:17 mirjam joined #perl11
04:17 bulk88 the perl stack is a regular AV, with some special treatment, the array is a regular malloc block that is bounds checked and growed upwards as necessery, it never shrinks for the life of the process
04:18 rurban joined #perl11
04:18 bulk88 my idea is to use the MMU of the CPU/Virutal Memory API of the OS, to create a very large reserved address space for the perl stack, then grow it in 1 page units upwards
04:19 bulk88 the pages are allocated the moment they are read/written from, through OS specific callback that will make the SEGV address become valid memory then resume from previous execution location
04:19 bulk88 mmap, then mprotect to de-reserve the blocks
04:19 bulk88 with a SIGSEGV handler to call mprotect
04:19 Will_the_Chill so this is all win32-only?
04:20 bulk88 right now it is, there is no reason it can't be done on SVR4 Unix
04:22 bulk88 http://stackoverflow.com/questions/2782628/any-way-to-reserve-but-not-commit-memory-in-linux
04:22 Will_the_Chill uh, not sure if you are meaning to include Linux in "SVR4 Unix"?
04:23 bulk88 yes linux too, svr4 means the feature was added before I was born and I cant imagine any posix os not implementing mprotect and mmap
04:23 bulk88 also on linux, a long mmap of NULLs suppsoedly isn't charged against the process, until it is first written to, making it de-COW
04:23 bulk88 and then the page becomes unique to the proc
04:23 bulk88 suppsoedly
04:24 bulk88 im not a linuc kernel guy so this is all internet reading
04:24 bulk88 the win32 code, of course words
04:24 bulk88 *works
04:24 Will_the_Chill yes I see that stackoverflow article about mmap
04:24 Will_the_Chill interesting
04:24 bulk88 the mortal stack and save stacks could also use this "Self allocating" treatment,
04:25 Will_the_Chill and what does "warnocked" mean?
04:25 bulk88 Im starting small first with jsut converting the Perl stack
04:26 bulk88 basically, perl never has to do runtime bounds checking and conditional jmps to stack grow function calls in C on its stacks ever again
04:26 bulk88 the CPU's MMU does the bounds checking for us, and if it fails it trickles down through the kernel to a sigsegv handler
04:26 bulk88 http://en.wikipedia.org/wiki/Warnock%27s_dilemma
04:27 bulk88 The Win32 C stack is implemented in the exact same way I described, so I want to use that MS code on the Perl stack
04:28 Will_the_Chill interesting idea
04:28 bulk88 perl's archtecture, on a white board is, decent, but the lack of using any modern language or OS features in its VM is horrible
04:28 Will_the_Chill you are talking about mixing actual Microsoft-owned source code with open source Perl core source code?
04:28 bulk88 no, just the algorithm/theory
04:29 Will_the_Chill oh okay good
04:29 Will_the_Chill also, I'm laughing to myself that you are talking about wanting modern language and OS features in Perl, after arguing so bitterly with me over using C++11 features for RPerl!
04:29 Will_the_Chill I think somebody needs to lovingly smack you
04:29 Will_the_Chill ;)
04:30 Will_the_Chill "yeah but this is DIFFERENT"
04:30 Will_the_Chill haha, there I beat you to it
04:31 Will_the_Chill at least the modern features I'm using are standardized
04:31 bulk88 in 2013 Perl got ASSUME and NOT_REACHED optimizations, 2013 http://perl5.git.perl.org/perl.git/commitdiff/ae103e099635e075f433d5302425673c4fe7badf
04:31 bulk88 since perl was written to 2 guys smoking weed in 1970 MIT C
04:31 bulk88 not even C89
04:33 bulk88 what language does * mean 3 different things?
04:33 bulk88 no seriouesly
04:43 Will_the_Chill actually the whole point of RPerl is that it sucks to write any C/C++ at all, so let's just make Perl compile to it so we never have to do it ourselves again
05:55 rurban joined #perl11
06:56 rurban joined #perl11
07:57 rurban joined #perl11
08:41 basiliscos joined #perl11
08:58 rurban joined #perl11
09:59 rurban joined #perl11
10:49 basiliscos joined #perl11
11:00 rurban joined #perl11
11:32 rurban joined #perl11
12:35 Will_the_Chill joined #perl11
13:17 mirjam joined #perl11
13:45 mirjam joined #perl11
17:03 rurban joined #perl11
17:05 rurban1 joined #perl11
18:41 rurban joined #perl11
19:42 rurban joined #perl11
20:05 rurban joined #perl11
20:19 rurban joined #perl11
23:02 rurban joined #perl11

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary