|
Parrot 3.10.0 "Apple Pi" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 22 November 2011. |
|||
| whiteknight | cotto: ping | 00:08 | |
| cotto | whiteknight: pong | 00:09 | |
| whiteknight | cotto: in TT # 67, what should the commandline flag be called? | 00:10 | |
| I suggest --mem-limit=X | |||
| cotto | whiteknight: that sounds unsurprising. I'd suggest using what jvm does, but -Xmx1234m is lta. | 00:13 | |
|
00:20
jsut joined
|
|||
| whiteknight | ...and it's a task | 00:29 | |
| at least, the first half of it | |||
| cotto | bam | ||
| whiteknight | parsing the value and passing it through to the GC | ||
| cotto | that's a good gci-type task | 00:30 | |
|
00:30
trishume joined
|
|||
| whiteknight | actually delving into the depths of the GC to add in the logic is more frightful | 00:37 | |
| Maybe O'bacek Kenobi can come save us | 00:38 | ||
|
01:08
woosley joined
|
|||
| whiteknight | We're up to 30 tasks | 01:24 | |
| bacek_at_work | whiteknight, it's kind of "impossible" to limit memory usage with current GC/guts design. | 01:29 | |
| whiteknight | Unfortunately, it's going to require a major refactor of *something* to do this | ||
| bacek_at_work: yeah, I'm seeing that now. We either need to add an interp parameter to mem_sys_* functions, or weneed to use a global | 01:30 | ||
| bacek_at_work | whiteknight, which is suck big time | ||
| whiteknight | yes, big time | 01:41 | |
| so, for now we're just going to have a GCI student add the flag, and we can wire it in later, when we're drunk | 01:42 | ||
| Yuki`N | drunk code is best code. | 01:44 | |
| whiteknight | msg dukeleto you have a pending Claim Request on a task you're mentoring. I don't want to accept it for you. | 01:51 | |
| aloha | OK. I'll deliver the message. | ||
| whiteknight | cotto: what should the common function prefix be in src/interp/inter_misc.c? Parrot_interp_ or Parrot_int_ both seem fine to me | 02:12 | |
| I'm going to create a task to rename them | |||
| I suppose src/interp/inter_create.c could have the same prefix | 02:13 | ||
| I wonder if we should merge the files | |||
| src/interp/api.c seems to follow conventions the best | 02:15 | ||
| cotto | whiteknight: I like "interp". "int" sounds too much like the C type. | ||
| whiteknight | good to me. I'm making the task | 02:16 | |
| Yuki`N | In NQP what's the difference between pir::load_bytecode and ::load_bytecode__ps | ||
| whiteknight | Yuki`N: the later tells which types of arguments the opcode takes. | 02:18 | |
| Yuki`N: the former tries to make an assumption, and may fail spectacularly | |||
| Yuki`N | ah | ||
| hmm | |||
| whiteknight | Yuki`N: there are two load_bytecode ops. One that takes a string, and the other takes a string and returns a PMC. the first letter is the return (p) and the rest of the letters are the arguments(s) | 02:19 | |
| Yuki`N | I'm trying to get Rosella to tell itself that it's in Rosella/rosella/**, not rosella/** | ||
| whiteknight | Yuki`N: I think you can pass the -L option to winxed or parrot | ||
| -LRosella should do it | |||
| cotto: What's your opinion about merging inter_create.c and inter_misc.c into interp/api.c? | 02:20 | ||
| cotto | whiteknight: sounds like a good gci task. | ||
| +1 | |||
| Yuki`N | parrot-nqp doesn't accept -L | 02:21 | |
| that's a pain. | 02:22 | ||
| whiteknight | it doesn't? That suxxors. We're going to have to add that | ||
| sounds like a new GCI task! | |||
| :) | |||
| Yuki`N | lol | ||
| I'm already doing dukeleto's though. :( | |||
| cotto | There might be a better way to break up functions in that code, but moving both into a single file is an improvement. | 02:23 | |
| Yuki`N | Where's the actual source for NQP? | 02:28 | |
| cotto | aloha: nqp? | ||
| aloha | cotto: nqp is perl6, not perl5, if that makes any difference or an option | ||
| Yuki`N | I'm looking in ext/nqp-rx and all I see are what I suspect to be automatically generated .pir files. | ||
| cotto | Yuki`N: github.com/perl6/nqp | ||
| aloha: nqp is also github.com/perl6/nqp | |||
| aloha | cotto: Okay. | ||
| Yuki`N | Oh. | 02:29 | |
| whiteknight | Yuki`N: I don't think I understand what you are doing | ||
| or, what problem you are having | |||
| Yuki`N | Well, I'm adding Rosella as a submodule in dukeleto's libgit2 bindings | 02:30 | |
| Because it's required to run the test library. | |||
| But since Rosella is cloned into /Rosella, the path to the library files becomes /Rosella/rosella | |||
| And dynamic loading fails. | 02:31 | ||
| whiteknight | ah, okay. So the test harness needs to be modified? | ||
| Yuki`N | I suppose so. | ||
| whiteknight | let me look at it | ||
| Yuki`N | The easiest fix would to be change the harness to winxed. | ||
| github.com/nol888/parrot-libgit2/b.../t/harness | |||
| whiteknight | Okay, yeah. I see it. Rosella::initialize_rosella assumes that things are in rosella/ | 02:32 | |
| so, we need to change it to something like this: | |||
| my $rosella := pir::load_bytecode__ps('rosella/core.pbc'); | 02:33 | ||
| Rosella::initialize_rosella(); | |||
| And then we need to load the harness library in manually: | |||
| Rosella::load_bytecode_file("Rosella/rosella/harness.pbc", "load"); | 02:34 | ||
| And I think that's all you need | |||
| Yuki`N | What does initialize_rosella do? | 02:39 | |
| whiteknight | github.com/Whiteknight/Rosella/blo...inxed#L139 | 02:40 | |
| basically, it loads the library, and executes all the setup functions | |||
| Yuki`N | meh | 02:42 | |
| Even if the harness worked. | |||
| I tried rewriting the harness in winxed. | |||
| The Rosella harness library runs winxed code in its own environment, so it doesn't inherit library search paths. | 02:43 | ||
| Hence when the winxed test tries to load Rosella components, it fails too. | |||
| whiteknight | oh crap, so every test is going to need to be updated with the same load preamble | 02:45 | |
| I don't know how to fix that in a general way, since the tests probably execute as separate processes | |||
| so loading rosella in the harness won't cause it to be loaded correctly in each test | |||
| you're really going to earn some points with this task :) | 02:46 | ||
| Yuki`N | lol dukeleto's only got it as a 2-pointer. | 02:48 | |
| I've got Rosella building with libgit2 | |||
| whiteknight | nice | ||
| Yuki`N | The only issue now is trying to get it recognized | ||
| so the tests actually run. | |||
| whiteknight | I can't see any way around it, I think you're going to have to edit every test file | ||
| I don't think libgit2 has too many of them,but still it's tedious | 02:49 | ||
| Yuki`N | There's only one test file, thankfull. | ||
| *thankfully | 02:50 | ||
| however, initialize_rosella() still tries to load 'rosella/core.pbc' | |||
| whiteknight | Yuki`N: I can't change the points value on a task after it's been published | ||
| Yuki`N | eh, I suppose it doesn't matter. | ||
| whiteknight | okay, don't call initialize_rosella then | ||
| Yuki`N | Can I call init_bytecode directly? | 02:51 | |
| whiteknight | Yeah, I think so. Pass in the return value from pir::load_bytecode__ps | ||
| parrot-nqp not accepting the -L option is a bit of a drag | 02:52 | ||
| okay, I'm heading to bed now. I'll be around in the morning for more questions and chat | 02:54 | ||
| Yuki`N | Alright. | ||
| whiteknight | goodnight, and goodluck | ||
| Yuki`N | dukeleto, I've fixed up your build system for libgit2 quite a bit. | 03:22 | |
|
03:23
jsut_ joined
|
|||
| cotto | ~~ | 03:27 | |
|
04:05
contingencyplan joined
05:46
rfw joined
05:47
benabik joined
06:10
dafrito joined
06:39
cosimo2 joined
07:24
he_ joined
07:54
woosley left
08:17
mj41 joined
08:46
mj41 joined
08:55
schmooster joined
09:12
jsut joined
09:20
lucian joined
09:24
lucian joined
12:12
Psyche^ joined
12:23
contingencyplan joined
12:26
mj41 joined
12:45
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:46 | |
| tadzik | good morning whiteknight | 12:49 | |
| whiteknight | hello tadzik, how are you doing today? | 12:58 | |
|
13:05
schmooster joined
13:19
bluescreen joined
13:30
mtk joined
13:49
mtk joined
|
|||
| dalek | sella/gh-pages: 57dfe15 | (Blaise Ritchie)++ | nl.winxed: Added nl clone |
13:53 | |
| sella/gh-pages: 18c5165 | (Blaise Ritchie)++ | ls.winxed: ls |
|||
| sella/gh-pages: 3390389 | Whiteknight++ | / (2 files): Merge pull request #30 from rippinblaise/gh-pages Add in nl and ls utility clones from blaise++ |
|||
| sella/gh-pages: 5f2bdb2 | Whiteknight++ | / (2 files): Add some forward declarations to the example programs to silence warnings |
14:01 | ||
| sella/gh-pages: 1139036 | Whiteknight++ | / (6 files): Move the two example programs, use them as includes in a new examples page |
|||
| sella: 6522f99 | Whiteknight++ | / (2 files): A few tweaks to the sorting benchmark to clean up the display and make sure all the options are being compared. |
|||
| sella: 7e1c8d8 | Whiteknight++ | / (4 files): Add a .sort_self method to Query.Queryable to sort the data in-place instead of sorting an array copy. |
|||
| sella/gh-pages: 2c2eec3 | Whiteknight++ | winxed/ (2 files): Website fixes |
14:06 | ||
|
14:55
jsut_ joined
|
|||
| dalek | rrot: 0af3679 | mls++ | compilers/pct/src/PAST/Compiler.pir: PCT: also use pop_upto_eh in loop generation code, so we can use next/last in inlined blockes with block handlers |
15:02 | |
| sella/gh-pages: 7cba405 | Whiteknight++ | / (2 files): Start rewriting the ls code example, to start showing a more idiosyncratic approach, and demonstrating more pervasive use of Rosella functionality |
15:23 | ||
| sella/gh-pages: c97b376 | Whiteknight++ | _includes/ls.winxed: A few more cleanups for the ls example |
|||
| sella/gh-pages: 7ce11b2 | Whiteknight++ | _includes/ls.winxed: Rewrite the ls example to use a stream. Use the sort and tap enhancements from master to fix formatting. |
|||
| sella/gh-pages: 1cca843 | Whiteknight++ | winxed/examples.md: Update the ls description for the website |
|||
| sella: 300ea2c | Whiteknight++ | src/core/IteratorBase.winxed: Implement a default, if naive, get_bool for IteratorBase |
|||
| sella: a0d8e21 | Whiteknight++ | src/query/St (2 files): Add skip counts to the Tap and ForEach stream stages. |
|||
| sella: 019c767 | Whiteknight++ | src/query/ (3 files): Add in a default sort comparer. Fix the qsort implementation so that it sorts things in the correct direction |
|||
| sella: b6887f6 | Whiteknight++ | src/query/Stage.winxed: We need to pop from the cache instead of shift from it in Stream.Stage.Sort to preserve the correct order |
|||
|
15:32
bluescreen joined
16:02
blaise joined
|
|||
| blaise | wow, took the task "implement smoothsort algorithm in winxed for rosella" for GCI not realizing it was the least documented algorithm on the internet | 16:03 | |
| whiteknight | you can't find enough information? I can't say I've ever researched it too deeply | 16:04 | |
| blaise | I found information | ||
| I looked into a couple other sorting algorithms, too | |||
| whiteknight | is it enough to work with? We can pick a different algorithm if that one is too obscure | ||
| blaise | this is the most complex andleast documented | 16:05 | |
| no, I can do it | |||
| whiteknight | From the description I saw, it seemed like it was a straight-forward extension to heapsort, but with weirdly-sized heaps | ||
| I suspect that I was mislead | 16:06 | ||
| blaise | after you figure it out, it doesn't seem so hard | ||
| it's definitely weird | |||
| dukeleto | ~~ | ||
| whiteknight | good morning duke | ||
| blaise | it uses multiple heaps | ||
| dukeleto | whiteknight: mornin'. Looks like the GCI force is strong this morning. | 16:09 | |
| whiteknight | dukeleto: sure is. I know Yuki'N was pushing forward with that libgit2 task, which you need to claim. And blaise++ here is some sort of miracle worker going crazy on a smoothsort implementation | 16:10 | |
| dukeleto | whiteknight: just assigned the task to Yuki`N | 16:11 | |
| whiteknight | dukeleto++ | ||
| dukeleto | blaise: i think i recognize your nick from last year as well | 16:12 | |
| blaise | worst case scenario: I can translate a java or C implementation | ||
| I wasn't in it last year | |||
| only just heard about it a week ago or so | |||
| whiteknight | blaise: Well, we're glad you did! | ||
| dukeleto | blaise: huh. well, welcome anyway! | 16:14 | |
| whiteknight | blaise: I don't know if you saw this example: www.keithschwarz.com/interesting/co...smoothsort | ||
| but there was an accompanying description on that website that was very informative | 16:15 | ||
| blaise | I haven't seen that | ||
| whiteknight | www.keithschwarz.com/smoothsort/ | ||
| blaise | reading that now | ||
| whiteknight | yeah, looks like C++ code. NotFound, who wrote Winxed, is very influenced by C++ so a lot of the syntax should port over without too much effort | 16:16 | |
| blaise | probably the best description of smoothsort I found | ||
| whiteknight | I'm surprised that it's so un-documented. Most of the work that Dijkstra did is usually celebrated and studied in detail | ||
| benabik | Smoothsort visualization and python code: sortvis.org/algorithms/smoothsort.html | ||
| blaise | winxed is dynamically typed, which makes making the algorithm applicable to many things pretty easy | ||
| in C++ you have to use templates or void pointers or something like that | 16:17 | ||
| I think I'll probably base it off of the python implementation | 16:18 | ||
| if I end up not just writing my own from scratch | |||
| NotFound | whiteknight: there you can see the problem with iterators. With better parrot iterators porting that kind of stuff will be a lot easier. | ||
| whiteknight | NotFound: Write up a design, and we'll do it | ||
| NotFound | whiteknight: I usually design while coding :D | 16:19 | |
| whiteknight | NotFound: Write up some code and we'll say it was designed | ||
| blaise | *looks at the python implementation in more detail | 16:21 | |
| what's up with the trailingzeroes function? | |||
| NotFound | An easy start can me just implementing increment, decrement and equal in current iterators. | ||
| s/me/be | |||
| tadzik | whiteknight: not bad. A nice mix of hardcore classes and GCI reviews | ||
| dalek | kudo/nom: 939696a | mls++ | src/Perl6/ (2 files): use direct lexinfo access instead of calling get_lexinfo on the sub |
16:23 | |
| kudo/nom: bbf207c | mls++ | src/ (2 files): Cleanup exception handling, so blocks with handlers can also be inlined. Instead of perl6_rethrow_skipnextctx op, we now have the much nicer perl6_based_rethrow, which rethrows an exception in the context of another exception. To make blocks with both CATCH and CONTROL handlers work, we need another op to skip the "outer" handler if an exception is caught in the exception handler. I.e. a die() in a CONTROL handler must not be caught with a "parallel" CATCH handler. |
|||
| kudo/nom: 4aac1bb | mls++ | src/Perl6/ (2 files): Also inline blocks with exception handlers |
|||
| kudo/nom: 656ff52 | mls++ | src/ (3 files): Add "outer" control handler, make most uncaught control exceptions fatal. Make warn() throw a control exception, use CONTROL_OK for now. |
|||
| kudo/nom: a81cc6e | mls++ | src/Perl6/ (2 files): remove the do_not_inline hint, it doesn't seem to be needed. jnthn++ |
|||
| kudo/nom: fec538b | tadzik++ | src/ (6 files): Merge pull request #41 from mlschroe/newexcept Newexcept |
|||
|
16:24
RobertLJ joined
16:35
jsut joined
16:42
jsut_ joined
|
|||
| blaise | "okay, this seems pretty straightforward, not too hard to implement. not sure why all those implementations looked so weird" *reads memory usage reduction optimizations* "oh..." | 16:44 | |
|
16:44
dmalcolm joined
|
|||
| whiteknight | blaise: for this task, we don't need optimizations. Whatever is the most straight-foward implemenation of the algorithm is fine | 16:45 | |
| tadzik | what task is it? | ||
| whiteknight | tadzik: implementing smoothsort in winxed for rosella | ||
| tadzik | nice | 16:46 | |
| whiteknight | yeah, I'm excited about it. | 16:47 | |
| I plan for rosella to provide a handful of sort-related routines. There will be a quicksort default, but you'll be able to specify a different algorithm if you suspect the data has certain characteristics | 16:49 | ||
| blaise made me a timsort implementation which is already about 90% faster than other alternatives if the array is mostly-sorted | |||
| blaise | that was Yuki`N | 16:50 | |
| whiteknight | oh. Shit, right | ||
| sorry | |||
| of course, the timsort is about 15% slower than quicksort if the data is a jumble | 16:51 | ||
| blaise | not according to wikipedia, it says quicksort's worst case is O(n^2) and timsort is O(n*lg(n)) | 16:52 | |
| whiteknight | quicksort's worst case scenario happens when the data is mostly ordered already, and when the pivot is selected in the worst possible way | ||
| if the data is random and the pivot is selected intellgently, quicksort is at it's best | 16:53 | ||
| timsort, meanwhile, has a worst case scenario when the data is completely random, and a best case when the data is mostly sorted | |||
| and actually, my quicksort cheats and switches to insertion sort for subarrays smaller than about 6 items, so the pathological behavior is eliminated | 16:55 | ||
| blaise | so without memory optimizations, the smoothsort has O(lg(n)) memory usage, but with optimizations, has O(1) | 16:56 | |
| dukeleto | this early history of programming languages by Knuth looks to be a good read: twitter.com/#!/CompSciFact/status/...5475048448 | ||
| whiteknight | that's fine. a little memory usage isn't bad. We can optimize it later | ||
| dukeleto: he better get his ass back to the typewriter and finish the last few volumes of taocp | 16:57 | ||
| blaise | the optimization to eliminate that memory usage is pretty weird | ||
| whiteknight | blaise: all optimizations are weird, just to different degrees :) | ||
| blaise | bitwise operations instead of storing a few numbers in an array | 16:58 | |
| I think I could modify these optimizations a bit to make more sense, but I could be wrong | 16:59 | ||
| oh, did my ls clone show hidden files and folders? I guess I didn't test it in directories with hidden files/folders | 17:02 | ||
| wow, that would have been easy to fix if I knew it was there | |||
| whiteknight | yeah, it's no big deal. | 17:12 | |
| I wanted to play around with that example this morning, so I was testing it and poking at it | 17:13 | ||
| that python implementation does seem relatively short, even if it's not clear what the hell is happening | 17:23 | ||
| blaise | yeah, I think they used the memory optimizations | ||
| thus how the code makes no sense | 17:24 | ||
| whiteknight | gotcha | ||
| What I think we really need to do for that ls implementation is link to libcurses and start using some color codes | 17:26 | ||
| I'm actually interested to see how far we can grow it | |||
| blaise | tried the python implementation, it complained that lst has no member "log" | 17:28 | |
| because arrays/lists don't have a log function | |||
| not sure what that's supposed to be | |||
| whiteknight | I think that's the function he uses to sample the data and produce those graphs | 17:29 | |
| you probably need to connect to his visualization library to use that | |||
| blaise | oh, that would be a problem | ||
| whiteknight | yeah, so you can probably just take out the .log() calls | ||
| blaise | yeah, that worked | 17:30 | |
| whiteknight | good | 17:32 | |
|
17:35
RobertLJ1 joined
|
|||
| blaise | it's fast, too | 17:36 | |
| not quite as fast as the built-in sorting, but what can you expect? | 17:37 | ||
| whiteknight | yeah, it's all a matter of the right data sets. Smoothsort is going to do well in some situations and bad in others. | 17:40 | |
| blaise | I'm randomly generating the list to test sorting | ||
| whiteknight | yeah, smoothsort should still work, but it won't be super-fast in those cases | 17:41 | |
| blaise | I probably could directly translate the python implementation into winxed | ||
| if there's bitwise operations and such | |||
| whiteknight | if that's the easiest, go for it | ||
| yeah, winxed has a complete set of bitwise ops | |||
| blaise | I'll start with that, and then see if I can make it more comprehensible | 17:42 | |
| whiteknight | blaise++ | ||
| blaise | so no global variables? | 17:56 | |
|
17:58
zby_home joined
|
|||
| blaise | nevermind, found const | 18:01 | |
|
18:09
RobertLJ1 joined
|
|||
| blaise | "Value for const is not evaluable at compile time near LP"? | 18:10 | |
| code is: "const int LP = [1, 1, ... 535828591, 866988873];" | 18:11 | ||
| whiteknight | what are you trying to const? I think it only works for strings, ints, and floats | ||
| blaise | ints | ||
| whiteknight | oh, an array of them | ||
| I don't think you can const that | |||
| Wrap your sorter in a class, and add an attribute to hold that array | 18:12 | ||
| dalek | TT #1610 closed by whiteknight++: Parrot_compile_string does not properly catch errors thrown by causing ... | 18:26 | |
| TT #1610: trac.parrot.org/parrot/ticket/1610 | |||
|
18:28
blaise joined
|
|||
| blaise | can arrays not be const? | 18:29 | |
| sorear | blaise: irclog.perlgeek.de/parrot/2011-11-23#i_4748864 | ||
| blaise | router got unplugged, so I timed out without noticing | 18:30 | |
| it is in a class | |||
| sorear | yes, but we have logs you can read | ||
| blaise | cool, anyway, it's in a class, and I removed the const | 18:31 | |
| and changed type to var, but I guess I need to initalize it somewhere else? | 18:32 | ||
| "set_attr_str() not implemented in class 'ResizableStringArray'" | 18:36 | ||
| wish it was giving me a line number for that error | |||
| not compile-time, though | |||
| cotto | ~~ | 18:45 | |
| blaise | it is now, but I still have no idea how to fix that error, this should be using "ResizablePMCArray" | 18:47 | |
| whiteknight | blaise: nopaste your code? | 18:52 | |
| blaise | I just switched to using a temporary variable to store it in each function | ||
| that can be dealt with later, currently just testing the implementation | |||
|
18:54
ambs joined
|
|||
| blaise | "too few positional arguments: 3 passed, 4 (or more) expected" | 18:59 | |
| for a call to a 3-argument function | |||
| whiteknight | is it a function or a method? | 19:04 | |
| method expects obj.foo() | |||
| blaise | function | ||
| whiteknight | is it inside a class {} block? | ||
| blaise | yes | ||
| whiteknight | then it's a method | ||
| it's confusing | |||
| blaise | oh, that's strange | ||
| pastebin.com/Cd1Q7vJJ | 19:05 | ||
| ^ the code | |||
| whiteknight | yeah, all calls to the trinkle and sift methods need to self.trinkle() and self.sift() | 19:10 | |
| blaise | ah, alright | ||
| whiteknight | and self.trailingzeros | ||
| blaise | okay, now no errors, it just doesn't sort correctly | 19:13 | |
| whiteknight | well, no errors is a big step! | 19:18 | |
| blaise | elements(lst) is the equivalent to len(lst) in python, right? | 19:19 | |
| whiteknight | elements([5, 6, 7, 8]) == 4 | ||
| I don't know what len(lst) does it python, exactly | 19:20 | ||
| blaise | okay | ||
| oh yeah, != is ~= in winxed, isn't it? | 19:21 | ||
| whiteknight | nope, != | ||
| blaise | oh | ||
| is it ~= in lua or something? | |||
| I know I used ~= in a new language in the last few days | |||
| whiteknight | perl? | ||
| blaise | I didn't write any perl recently | ||
| atrodo | perl is =~ | ||
| whiteknight | Then I don't know. | ||
| atrodo | and means something completely different | 19:22 | |
| NotFound | In winxed ~ is bitwise not, ~= is nothing. | 19:23 | |
| blaise | wait, is ^ bitwise XOR? | 19:24 | |
| NotFound | blaise: yes | 19:25 | |
| blaise | okay, wonder what's wrong with this code, then... | ||
| NotFound | blaise: better use int instead of var, some operators are not well tested for var. | 19:26 | |
| blaise | okay, I'll try to change all the ones necessary | ||
| whiteknight | NotFound: ...you know, it would make a good GCI task to add tests for those operators... | ||
| NotFound | whiteknight: not a bad idea. | 19:27 | |
| blaise | how much of this is pass by reference and how much is pass by value? | 19:28 | |
| whiteknight | if it's var, it's pass by reference. | ||
| int are pass by value | |||
| blaise | okay. I'll go see what python does | ||
| whiteknight | of course, int is just integers | ||
| NotFound | That depends on what you do with the var. If you assign to it, the reference to the original is lost. | 19:29 | |
| whiteknight | ah, right | 19:30 | |
| NotFound | But you can use the =: operator. | ||
| whiteknight | I keep forgetting about that thing | ||
| blaise | there, now only uses var when necessary | 19:31 | |
| works now :D | 19:32 | ||
| whiteknight | awesome | ||
| pull request! pull request! | |||
| blaise: and you can tell your algorithms professor that you implemented a smoothsort, and he'll say "what's a smoothsort?" | 19:33 | ||
| blaise | where should I put it? I ended up putting it in a new file, is that alright? | ||
| whiteknight | blaise: can you add it to benchmarks/query/sort.winxed? | ||
| blaise | also, I'll be implementing this in C and studying it further in the near future | ||
| whiteknight | It's a large, comparative benchmark that I'm keeping track of various algorithms in | ||
| blaise | sure, I'll just add the class to it | ||
| whiteknight | awesome | ||
| you can comment some other things out, or decrease the N value if you want to run it and not waste a lot of time | 19:34 | ||
| blaise | oh yeah, wanted to get the class-wide variable thing working for LP and MultiplyDeBruijnBitPosition | ||
| I'll just leave what I had for that commented out for now | 19:35 | ||
| dukeleto | whiteknight++ # gci task whisperer | 19:37 | |
| whiteknight | dukeleto: We're at 35 now. I want 15 more in the next few days | ||
| I think that's a very reasonable goal | |||
| dukeleto | whiteknight: i don't have time to add more tasks now, but I will soon | 19:38 | |
| whiteknight: are you keeping a list of them in a repo somewhere? | |||
| whiteknight: i can give you a commit bit on my gci.git if you want | |||
| whiteknight | I haven't been keeping track of them separately, no | 19:39 | |
| we can csv export the list that's here | |||
| blaise | pull requested | 19:42 | |
| whiteknight | awesome! Give me a minute to look over the code and i'll close the task | 19:44 | |
| mark the task ready for review | 19:45 | ||
| blaise | marked as complete | 19:47 | |
| whiteknight | completed successfully. Congratulations | ||
| blaise | how complex is the mersenne twister algorithm? | 19:48 | |
| whiteknight | blaise: not too bad, I don't think. Mostly algebra, integer operators, etc | ||
| not nearly so complicated as a sort like smoothsort | 19:49 | ||
| blaise | oh, it's already taken | ||
| or has melange just stopped me from taking multiple tasks at once? | 19:51 | ||
| dukeleto | whiteknight: are you on the smoothsort pull request? | 19:53 | |
| whiteknight | yeah | 19:54 | |
| I'm not going to merge it yet, I think I created some kind of conflict | |||
| blaise: I think you can only have one task at a time | 19:55 | ||
| blaise: the mersenne one is still open | |||
| cotto | yes. That's intentional in gci. | ||
| blaise | oh, I could have more than one before | ||
| I'll just go finish that other one, then see if the mersenne one is still open | |||
|
20:03
davidfetter joined
|
|||
| blaise | by the way, it is ~= in perl | 20:13 | |
| lua* | |||
|
20:20
mj41 joined
|
|||
| dalek | p/nci: a2d4ea1 | jnthn++ | src/ops/nqp_dyncall.ops: Start to get string passing in place; support a choice of ways to encode the string being passed. Note that memory management not done yet. |
20:27 | |
|
21:06
lucian joined
|
|||
| dalek | p/nci: 060905c | tadzik++ | 3rdparty/dyncall-0.6/dynload/dynload_syms_elf.c: Fix some compilation issues on gcc |
21:09 | |
| p/nci: cef885f | jnthn++ | src/ops/nqp_dyncall.ops: Add a way to free any C strings we pass; always do it initially. |
21:18 | ||
| p/nci: c490223 | jnthn++ | src/6model/reprs/NativeCall.c: Don't leak library names. |
|||
| p/nci: 3255210 | jnthn++ | src/ops/nqp_dyncall.ops: Enable control over whether we free strings after passing them. |
|||
| p/nci: 7b8dfa4 | jnthn++ | src/ops/nqp_dyncall.ops: Avoid allocating 0 bytes on argumentless call. |
|||
|
21:59
bluescreen_ joined
22:08
bluescreen joined
22:09
bluescreen_ joined
22:10
bluescreen joined
|
|||
| dalek | kudo/nom: e3246ea | jnthn++ | src/Perl6/Metamodel/ (2 files): Fix postcircumfix:<( )> overriding issue. |
22:10 | |
| dukeleto | msg whiteknight melange somehow will not let me close a task that you are the sole mentor for, so I can't close www.google-melange.com/gci/task/vie...11/7170203 | 22:12 | |
| aloha | OK. I'll deliver the message. | ||
| dukeleto | blarg | ||
|
22:13
bluescreen_ joined,
bluescreen joined
|
|||
| dukeleto | all gci tasks going forward should just have all mentors listed | 22:15 | |
| so anybody can close a task. Sigh. | |||
| dalek | p/nci: da7528a | jnthn++ | tools/build/Makefile.in: Install the dyncall oplib. |
22:29 | |
| p/nci: f7e601c | jnthn++ | src/ (2 files): Little refactor - we now pass in the object already initialized to build the native call site in. More flexible. |
|||
| kudo/nci: c4ae651 | jnthn++ | src/Perl6/SymbolTable.pm: Add loading code for native call ops. |
22:46 | ||
| kudo/nci: f50ef0e | jnthn++ | src/ (2 files): Add userland support for box_target trait, which we need for NCI module. |
|||
|
23:03
bluescreen_ joined,
bluescreen joined
23:31
Yuki`N joined
|
|||
| Yuki`N | dukeleto, ping | 23:31 | |
| dukeleto | Yuki`N: pong but leaving soon | 23:32 | |
| Yuki`N | dukeleto, finished the task. | ||
| (before you accepted it, actually) | 23:33 | ||
| Review/accept at leisure. www.google-melange.com/gci/task/vie...11/7132336 | 23:36 | ||
|
23:37
ingy joined
|
|||