Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-10

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:06 whiteknight oh, there's a call aspect? I didn't know that. I probably won't be able to join though
00:23 dukeleto Put on your lollerskates: http://i.imgur.com/eqDAc.jpg
00:28 kapace_ joined #parrot
00:28 nwellnhof dukeleto: http://yankov.us/rage/
00:29 kapace_ So, now I'm working on http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129151938222 and I have ComplexMatrix2D and NumMatrix2D working together
00:29 kapace_ but PMCMatrix2D doesn't seem to work the same way
00:31 kapace_ https://github.com/Whiteknight/parrot-linear-alge​bra/blob/master/src/pmc/complexmatrix2d.pmc#L316 declares attrs_a as a ComplexMatrix2D, but I can't get it to declare as PMCMatrix2D
00:31 whiteknight let me look
00:32 whiteknight kapace_: You probably can't use that function. You should probably use VTABLEs instead to get what you want instead of poking into the structures directly
00:33 whiteknight VTABLE_get_attr_str(interp, pmc, Parrot_str_new(interp, "rows"))
00:33 whiteknight and "cols"
00:33 kapace_ whiteknight: ok
00:34 whiteknight think of it like the difference between "public" and "private" in most OO languages. You can use the private stuff for ComplexMatrix2D, but you need to use the public stuff for PMCMatrix2D
00:34 kapace_ makes sense
00:35 kapace_ what is interp?
00:35 whiteknight that's the interpreter structure for Parrot. It controls everything
00:36 kapace_ ah
00:36 whiteknight almost all functions take a reference to the interp as the first arg. You don't have to use it, you just need to pass it along
00:37 kapace_ ok, well the problem im running into is that "PMC * item = ITEM_XY_ROWMAJOR(s_b, rows, cols, i, j);" fails because s_b is thought to be a ComplexMatrix2D returning a FloatVar
00:38 kapace_ works fine for NumMatrix2D, but not for PMCMatrix2D because it returns a PMC
00:39 kapace_ nvm
00:39 kapace_ I should try to use the methods to access it
00:45 Yuki`N left #parrot
00:50 kapace_ "INTVAL cols = VTABLE_get_attr_str(PARROT_INTERP, B, Parrot_str_new(PARROT_INTERP, "cols"));" -> error: expected expression before ‘Parrot_Interp’
00:51 PacoLinux left #parrot
00:52 PacoLinux joined #parrot
00:53 whiteknight PARROT_INTERP is the declaratoin
00:53 whiteknight use the variable "interp"
00:54 kapace_ ah
00:55 kapace_ silly me
01:08 nwellnhof left #parrot
01:14 stilgar joined #parrot
01:14 kapace_ where can I find docs for Parrot_str_new?
01:17 stilgar kspace_ perldoc  src/pmc/string.pmc?
01:17 kapace_ thanks
01:18 stilgar does that wmo
01:18 stilgar mobile keyly
01:18 stilgar left #parrot
01:18 kapace_ lol
01:36 kapace_ whiteknight: http://dpaste.com/285058/ mind taking a look?
01:36 whiteknight sure
01:37 kapace_ it works for complexmatrix +/- nummatrix or PMCmatrix
01:37 whiteknight kapace_: looks pretty good. I have two comments
01:38 whiteknight First: that function add_matrices_pmc you have should work for all cases. You don't need add_matrices_generic like you wrote. It's basically a duplicate with a very small performance improvement for NumMatrix2D
01:38 whiteknight Second: VTABLE_get_integer returns an integer. We probably want VTABLE_get_number to return a floating-point number
01:38 whiteknight otherwise, it looks pretty good
01:39 kapace_ ok makes sense, any other changes before posting to melange?
01:41 kapace_ oh, right the tests! almost forgot
01:57 whiteknight yes, the tests are important
01:57 whiteknight but otherwise, no. The code looks very good
02:00 kapace_ how do I run the tests?
02:07 whiteknight parrot-nqp setup.nqp test
02:07 whiteknight do you have kakapo installed?
02:07 whiteknight (it's in the README how to do it if not)
02:07 kapace_ yes
02:07 kapace_ david@animal:~/Data/GCI/pla$ parrot-nqp setup.nqp test
02:07 kapace_ t/sanity.t ... Contextual $*FileSystem not found
02:25 kapace_ whiteknight: any ideas? I see this ticket, http://trac.parrot.org/parrot/ticket/1518 , but no solution
02:28 Yuki`N joined #parrot
02:33 Yuki`N Hm, nwellnhof disappeared.
02:41 Yuki`N whiteknight, you here?
02:47 kapace_ whiteknight: found solution in logs, but its not not in readme..
02:47 kapace_ can I make the tests in PIR, or do I have to use perl?
02:50 whiteknight I am
02:51 whiteknight kapace_: hmm, my README is out of date
02:52 whiteknight kapace_: install the version of Kakapo from http://github.com/Whiteknight/kakapo.git
02:52 whiteknight the version from gitorious is broken
02:52 kapace_ whiteknight: yeah, i got that
02:52 * whiteknight needs to update that damn readme
02:52 whiteknight oh, and you're still getting that failure?
02:52 whiteknight nevermind, I'm behind
02:53 kapace_ no, works, working on the test, do I have to use perl?
02:53 Yuki`N whiteknight, Could you explain nwellnhof's comment on my github pull request?
02:54 whiteknight Yuki`N: let me look at it
02:54 Yuki`N I found a throws_substring function that apprently checks to make sure an exception is thrown
02:55 whiteknight Yuki`N: The MULTI issue is fine. Don't worry about that. I just commented
02:56 allison everybody's here now (traffic delays), let us know if you want to listen in
02:56 whiteknight the other issue he has is that those two exceptions that are thrown are stupid, like I said. Those are bugs for us to fix
02:56 whiteknight Yuki`N: so instead of testing that we throw an exception, test that we *don't* throw an exception and mark the test TODO. When we fix the bug your tests will pass
02:57 Yuki`N Oh those are actually bugs? ._.
02:58 whiteknight yes. We should support other types of inputs, but we don't
02:58 whiteknight bug
02:58 Yuki`N Ah.
02:58 Yuki`N So instead of my exception handler setting something true it needs to set it false.
02:59 whiteknight right
02:59 whiteknight there should be a todo function somewhere, or something that marks it todo
02:59 Yuki`N Yeah, it's todo()
03:00 Yuki`N Oh, and as to PIR with unicode.
03:00 Yuki`N Found this: $P0 = box unicode:"科ムウオ"
03:01 cotto joined #parrot
03:02 cotto ~~
03:02 Yuki`N whiteknight, should I close that pull request and open a new one?
03:02 whiteknight Yuki`N: I don't thnk you need to. I think you can make more commits and add new commits to the request
03:03 kapace_ whiteknight: can I print, or output debug in the test files/
03:03 Yuki`N Oh it automatically added my commits.
03:04 whiteknight kapace_: there is a diag() function to output diagnostics stuff
03:04 kapace_ ok, thanks
03:06 plobsing cotto: http://www.fileformat.info/inf​o/unicode/char/1f30a/index.htm
03:07 * whiteknight has to go to bed now. Goodnight
03:07 whiteknight left #parrot
03:08 * dukeleto made it to the lorito meeting
03:11 dalek left #parrot
03:11 sorear left #parrot
03:12 p6eval left #parrot
03:12 TimToady left #parrot
03:43 pmichaud apologies for missing the lorito meeting
03:48 bluescreen left #parrot
03:59 plobsing aloha: msg whiteknight does src/exceptions.c:Parrot_ex_add_c_handler fit into your grand scheme for the native API? if so how? if not, why?
03:59 aloha plobsing: OK. I'll deliver the message.
04:04 dukeleto pmichaud: we are still talking
04:05 atrodo dukeleto> going well I assume?
04:05 plobsing dukeleto: will there be notes?
04:05 TypeNameHere_____ joined #parrot
04:10 kapace_ any mentors around? http://dpaste.com/285095/
04:11 TypeNameHere_____ left #parrot
04:14 plobsing kapace_: I suspect for PLA-related tasks such as that, whiteknight (NA east cost, went to bed 1h ago) is the only person who can give a definitive yea/nay on the task. I could be wrong.
04:15 kapace_ ok. maybe someone could accept the claim, in the meantime? http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129151938222
04:18 dukeleto atrodo: yes, much talk about Lorito and our new MOP
04:18 dukeleto plobsing: yes, many notes
04:18 dukeleto kapace_: yep
04:18 kapace_ dukeleto: awesome, thanks
04:19 * kapace_ plays Wesnoth 'till whiteknight returns...
04:20 plobsing kapace_: you may want to 'aloha msg' him to avoid waiting around for manual delivery
04:21 kapace_ ok
04:21 kapace_ aloha: msg whiteknight http://dpaste.com/285095/ I wrote the tests in PIR, I hope thats OK...
04:21 aloha kapace_: OK. I'll deliver the message.
04:21 dukeleto kapace_: done
04:22 kapace_ ill post it to melange as well, in case he accepts..
04:22 dukeleto atrodo: what is the status of your lorito stuff?
04:24 atrodo dukeleto> Functional to a degree.  It runs and I've just started writing a pmc hash and resizable pmc array
04:27 dukeleto atrodo: "make test" fails for me on master
04:27 atrodo dukeleto> Tests are rather lacking as well
04:28 dukeleto atrodo: https://gist.github.com/735786
04:28 atrodo dukeleto> not what i was expecting actually
04:30 particle left #parrot
04:32 particle joined #parrot
04:33 atrodo dukeleto> Thanks.  I fixed that test, and I know that 90_fib.t will fail.
04:34 dukeleto atrodo: hokey dokey
04:36 dukeleto atrodo: where can i read about each opcode that your lorito implements? Is there a list somewhere?
04:36 atrodo dukeleto> https://github.com/atrodo/​lorito/blob/master/ops.pod
04:40 dukeleto atrodo: that is a great doc. I love that you have a "reason" subsection. That is really useful!
04:42 atrodo dukeleto> thanks.
04:54 p6eval joined #parrot
04:55 dalek joined #parrot
05:03 dukeleto atrodo: how do allocate memory in your lorito?
05:03 dukeleto atrodo: s/how do/how do you/
05:04 dukeleto atrodo: is it possible to call C functions from your lorito? Doesn't look like it to me.
05:05 atrodo dukeleto> primarily malloc/realloc since I don't have a gc yet.  Was that what you meant?
05:06 atrodo dukeleto> calling C is possible.  It must conform to an exact function signature
05:07 Yuki`N Am I doing something wrong or did I find a bug? http://pastebin.com/BPcfb0Ta
05:07 dukeleto atrodo: which op allows calling c?
05:07 atrodo dukeleto> call
05:07 dukeleto atrodo: we are talking about needing an alloc op at M0
05:08 sorear joined #parrot
05:08 atrodo dukeleto> my PMCs are allocated memory
05:08 dukeleto Yuki`N: you are not assigning the value of the multiply op
05:08 TimToady joined #parrot
05:08 dukeleto Yuki`N: $P0 = mul $P0, $P1
05:08 atrodo dukeleto> hmmm, that may not have been clear enough
05:08 dukeleto Yuki`N: that should fix your issue
05:08 Yuki`N But mul $P0, $P1 works when 0 and 1 are Integers.
05:09 Yuki`N I'm trying to test MULTI void i_multiply(BigInt value)
05:09 Yuki`N Where that's called by:
05:09 Yuki`N inline op mul(invar PMC, invar PMC) :base_core {
05:09 Yuki`N VTABLE_i_multiply(interp, $1, $2);
05:09 Yuki`N }
05:09 atrodo dukeleto> My PMCs do not have intrinsic structure.  They are a blob of memory that you can manipulate with store/load
05:13 dukeleto Yuki`N: perhaps you have found a bug. Not quite sure
05:14 dukeleto Yuki`N: the 2 argument form of mul should not be modifying it's arguments
05:14 Yuki`N Well i_multiply is supposed to do it inplace.
05:14 dukeleto Yuki`N: see if it works with the 3 arg form of mul
05:16 Yuki`N It works with the 3-arg form but I need to test the 3-arg form.
05:16 Yuki`N *2arg
05:17 Yuki`N All the other 2arg mul's work as expected.
05:17 Yuki`N Only BigInt and Complex don't.
05:17 Yuki`N However they do work as 3arg.
05:18 dukeleto Yuki`N: perhaps you have found a bug. Write some tests and send an email to parrot-dev explaining what you found
05:18 Yuki`N Should I just excerpt these tests?
05:18 dukeleto Yuki`N: sure
05:22 Yuki`N Should I make a trac bug or send to the mailing list?
05:33 Yuki`N left #parrot
05:54 hudnix left #parrot
05:55 hudnix joined #parrot
05:59 zarchne joined #parrot
06:49 Kulag left #parrot
06:50 Kulag joined #parrot
07:01 theory left #parrot
07:25 Kulag left #parrot
07:28 nopaste "cotto" at 192.168.1.3 pasted "very raw notes from Lorito braindump" (43 lines) at http://nopaste.snit.ch/26898
07:29 cotto msg atrodo http://nopaste.snit.ch/26898 - here are some rough notes from the braindump
07:29 aloha OK. I'll deliver the message.
07:29 Kulag joined #parrot
07:31 sorear hello cotto
07:31 sorear what's the deadline for the roadmap stuff?
07:36 cotto left #parrot
07:39 fperrad joined #parrot
07:48 fperrad left #parrot
08:06 tadzik aloha, any messages for me
08:06 fperrad joined #parrot
08:10 tadzik msg dukeleto very nice, looks good for me. I'd maybe change a few words in a few places but it looks good for me
08:10 aloha OK. I'll deliver the message.
09:27 rfw left #parrot
09:40 dalek parrot: 6ca3c74 | sygi++ | README.polski:
09:40 dalek parrot: polish translation of README
09:40 dalek parrot:
09:40 dalek parrot: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
09:40 dalek parrot: review: https://github.com/parrot/parrot/commit/6ca3c7442c
09:40 dalek parrot: cb0a1c0 | sygi++ | README.polski:
09:40 dalek parrot: tiny corrects
09:40 dalek parrot:
09:40 dalek parrot: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
09:40 dalek parrot: review: https://github.com/parrot/parrot/commit/cb0a1c05b4
09:40 dalek parrot: b94ba6a | sygi++ | README.polski:
09:40 dalek parrot: tiny corrects
09:40 dalek parrot:
09:40 dalek parrot: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
09:40 dalek parrot: review: https://github.com/parrot/parrot/commit/b94ba6aef3
09:40 dalek parrot: ec8e6e7 | dukeleto++ | NEWS:
09:40 dalek parrot: Add NEWS item about README translations
09:40 dalek parrot: review: https://github.com/parrot/parrot/commit/ec8e6e744a
09:45 sorear polski?  why not pl_PL
10:05 JimmyZ joined #parrot
10:08 JimmyZ left #parrot
10:35 lucian joined #parrot
10:49 cotto joined #parrot
10:51 cotto ~
10:58 contingencyplan left #parrot
12:02 smash joined #parrot
12:02 smash hello everyone
12:03 smash seen chromatic
12:03 aloha chromatic was last seen in #parrot 2 days 12 hours ago saying "multidispatch at the core makes vtables much nicer".
12:30 zby joined #parrot
12:36 bluescreen joined #parrot
13:17 jan left #parrot
13:41 mtk joined #parrot
13:49 AzureStone left #parrot
13:50 whiteknight joined #parrot
13:52 whiteknight good morning, #parrot
13:52 AzureStone joined #parrot
13:55 whiteknight msg plobsing: src/exceptions.c:Parrot_ex_add_c_handler creates a bit of a problem because it requires the user to create a jmp_buf, which is hardly ideal from a user perspective. Also, because we can't use a jmp_buf into a callframe that is already exited I can't encapsulate the behavior into a proper API call. I would *much* prefer if we could pass C func pointers. For the time-being, I may...
13:55 aloha OK. I'll deliver the message.
13:55 whiteknight ...require the user to create NCI PMC-based exception handlers, though I'm not sure how
13:55 whiteknight I sure hope aloha is smart enough to deliver all that
13:56 whiteknight We may have to create an ExternalExceptionHandler type to use NCI-based handlers that live outside Parrot and it's runloop
13:57 whiteknight msh kapace_: The code you have looks good and the tests in PIR are okay. Open a pull request on github. I will test, merge, and approve your task. Thanks!
14:03 jsut joined #parrot
14:03 atrodo hmmm
14:04 atrodo msg cotto Interesting.  Not the direction I was expecting.  I'm going to try and comment on it this morning.
14:04 aloha OK. I'll deliver the message.
14:08 jsut_ left #parrot
14:10 whiteknight atrodo: yeah, I was surprised by some of it. Pleasantly in many cases, but surprised nonetheless
14:10 atrodo whiteknight> I haven't decided if i'm pleasantly yet or not
14:11 whiteknight using contexts as the base object instead of the interpreter is very exciting to me. That's going to be a big step towards making us threadable
14:11 atrodo but that's probably just because it was such a radically different direciton
14:11 whiteknight atrodo: what areas give you pause?
14:12 whiteknight atrodo: do you have the link handy?
14:12 atrodo http://nopaste.snit.ch/26898
14:12 atrodo whiteknight> The context thing.  I'm not sure about it yet
14:13 atrodo That, and the seemingly tight integration with the new MOP
14:13 atrodo But that's off hand, I'm going to go through it line by line and really think about it compared to the direction I had in mind
14:13 whiteknight I like the context thing because it breaks up the "global" data into individual contexts, which we can arbitrarily schedule across multiple OS threads
14:14 whiteknight what I don't like necessarily is that it creates a lot of questions about what happens to "global" data like namespaces or metaclass definitions
14:15 whiteknight like, if we have context-local copies of metaclass definitions, we have multiple OS threads and one of the threads modifies it's local metaclass object, what happens?
14:15 atrodo I think it creates a lot of questions.  Some of it seemed like more hand waving the first read through
14:15 whiteknight do objects of the "same" class on different threads then have different semantics? do we syncrhonize
14:15 atrodo That's a good question
14:16 whiteknight yeah, this is definitely a short report. I am very much looking forward to more details
14:16 whiteknight any implementation we pick is going to have tradeoffs. So if we lose synchronization on globals across threads but we gain killer performance, maybe we go with that
14:17 atrodo Ideally, I'd like to see the trade off being poor performance when you want sync rather than not be able to sync at all
14:18 whiteknight right, but there's a different between automatic sync and manual sync
14:18 whiteknight the later is a very Erlang-style send-message paradigm
14:18 atrodo And if we're mimicking more of an asm/microcode level, the latter is much more suited
14:20 whiteknight right. If we could eliminate automatic cross-thread operations and require the user to manually sync, we sync less, have points of lock contention only where the user specifies, etc
14:20 whiteknight And we can completely eliminate data sharing between threads, which means we don't need a heavy STM implementation, we don't need a GIL, etc
14:22 atrodo Exactly.  Those type of models can be built upon on top of this level
14:23 atrodo although, it does bring up the question of interop.  If all the HLLs do their own thing, thread-safe becomes quite tricky
14:25 jsut_ joined #parrot
14:25 whiteknight If all PMCs get a unique ID key number, which is preserved on cross-thread copy, we can manually sync a PMC with a different thread by passing in a reference to the target thread to take the update. That thread looks up the specified PMC with the same ID number and does the copy internally
14:26 whiteknight if we do that internally, all an HLL needs to do is call the "update_to" method on the PMC and everything happens magically
14:26 atrodo That sounds like a pretty good idea
14:27 whiteknight that way we only update to a PMC that is a clone of the current one, which means it should have the same object type and type semantics
14:29 jsut left #parrot
14:33 redicaps joined #parrot
14:34 atrodo Yea, that sounds very usable
14:36 redicaps Hi there, I can not compile parrot on Cygwin . I got error like this
14:36 redicaps Can't spawn child process
14:36 redicaps current instr.: 'compile_file' pc 1068 (tools/dev/pbc_to_exe.pir:616)
14:36 whiteknight Again, where we run into problems is verifing that the metaclass is the same between threads. We would need a fast comparison to see if metaclasses are equivalent. a quick SHA1 hash of it would serve the purpose
14:37 whiteknight redicaps: hello. Thanks for the report
14:37 whiteknight I thought we were building on Parrot
14:37 whiteknight er, building on Cygwin
14:38 redicaps Do you need more details?
14:38 redicaps fatal error - unable to remap \\?\C:\cygwin\home\woosley\rakudo\p​arrot\runtime\parrot\dynext\os.dll to same address as parent: 0x210000 != 0x230000
14:39 whiteknight redicaps: yeah, can you nopaste as much of your console output as you have available?
14:39 whiteknight aloha: nopaste?
14:39 aloha whiteknight: nopaste is is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
14:40 nopaste "redicaps" at 192.168.1.3 pasted "compile error on Cygwin" (15 lines) at http://nopaste.snit.ch/26922
14:43 atrodo dukgo gave me http://tersesystems.com/2006/03/18/unable-to-remap
14:45 atrodo Actually, more digging has pointed me to the readme_cygwin https://github.com/parrot/parro​t/blob/master/README_cygwin.pod
14:52 redicaps rebaseall seems not working out, let me follow the README
14:55 lucian left #parrot
14:55 whiteknight redicaps: weird.
15:03 redicaps No luck here, I still get the same error
15:05 whiteknight redicaps: I'm sorry to hear that. I don't think we have any devs working on cygwin right now who might be able to give more in-depth help
15:05 whiteknight what problem were you getting with the rebaseall thing?
15:08 redicaps I think Command rebaseall just works, It reports some dll skipped because nonexistent
15:13 redicaps left #parrot
15:14 whiteknight okay
15:36 dalek winxed: r707 | NotFound++ | trunk/examples/ajax.winxed:
15:36 dalek winxed: use keyed new in example ajax to avoid warnings
15:36 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=707
15:39 Patterner left #parrot
15:46 cotto_work ~~
15:46 atrodo Morning cotto_work
15:46 cotto_work morning, atrodo
15:48 hercynium joined #parrot
15:48 cotto_work chromatic and dukeleto had really good things to say about your Lorito prototype.
15:49 atrodo cotto_work> Glad to hear
15:49 Psyche^ joined #parrot
15:50 Psyche^ is now known as Patterner
15:50 cotto_work It'll be into next week before I can type the braindump notes into something more coherent.  Is there anything that stands out that you have questions about?
15:50 atrodo cotto_work> Remind me what REPR/HOW is?
15:50 cotto_work http://6guts.wordpress.com/2010/10/15/slides-a​nd-a-few-words-on-representation-polymorphism/
15:50 atrodo already working on it.  Trying to process it now
15:51 cotto_work We'll be using a port (by chromatic) of jnthn's MOP for all objects.
15:51 whiteknight nice.
15:51 whiteknight so who do idle hands go to for help: chromatic or jnthn?
15:52 cotto_work REPR is the way an object is stored.  HOW is everything else about the object.  (my understanding)
15:52 atrodo cotto_work> Thanks.  Once I got into that blog, I remembered
15:53 atrodo I am slightly concerned at this point about forcing the MOP so invasive onto such a low level representation, but we'll see as I work through this
15:53 whiteknight cotto_work: I've got a number of questions about the dump, specifically pertaining to concurrency. I'm sure allison has that angle in mind herself, but I want to make sure certain issues are being considered
15:55 cotto_work whiteknight: ok
15:59 fbrito joined #parrot
16:01 kapace_ whiteknight: so I've never done a git pull request before.. I branch PLA and add my changes
16:01 kapace_ then make a pull request?
16:02 dmalcolm joined #parrot
16:09 whiteknight kapace_: Do you have a fork on github?
16:10 whiteknight kapace_: If it's a hassle, I can apply your patch directly here
16:10 whiteknight that would be fine too if you want
16:12 zby left #parrot
16:13 kapace_ whiteknight: i made my github account
16:13 kapace_ and I forked PLA just now
16:13 kapace_ thing is I have to leave for school, so I'll have to finish this later
16:21 kapace_ whiteknight: https://github.com/kapace/parrot-linear-algebra hope i did this right
16:22 * kapace_ runs off to school
16:24 plobsing ≁≁
16:24 cotto_work whiteknight: what concerns do you have?
16:29 plobsing whiteknight: what is problematic about users providing C<jmp_buf>s? (not that I'm entirely sad to see Parrot_ex_add_c_handler go, the implementation requires Sub.pmc to be too smart for its own good)
16:35 atrodo cotto_work> https://gist.github.com/736285 # First rounds of comments.  Not sure if POD was a good idea to comment in.
16:37 plobsing atrodo: might want to break those long lines next time, gist is cutting them off.
16:37 atrodo plobsing> ha, good point.
16:39 cotto_work atrodo: I'm not sure about pod either for that, but it's a rough idea anyway
16:39 cotto_work thanks for the thoughts.  reading now
16:40 atrodo Great, google maps no longer tells you how many miles your trip is
16:40 cotto_work immutable contexts was an idea that chromatic had.  It may or may not be workable.
16:40 cotto_work my trip?
16:40 atrodo your as in the generic user of the software
16:41 atrodo I wanted to see how many miles portland was.  google maps won't tell me
16:42 atrodo *miles away Portland was
16:43 * plobsing is confuzzled by the direction lorito is taking on nci
16:44 whiteknight plobsing: jmp_buf is really just a sub-optimal error-handling mechanism
16:45 plobsing whiteknight: there's an optimal one?
16:45 kapace_school joined #parrot
16:45 whiteknight I would far prefer to be able to pass in a function pointer instead because you don't need to worry about jumping to a non-existing stack frame
16:45 whiteknight plobsing: in the sense that it's messy, confusing, and error-prone
16:45 whiteknight a function pointer is a little more straight-forward
16:45 fbrito hey guys, I am having problems writing tests (GCI task) for operations (add and subtract) between NumMatrix2D and ComplexMatrix2D, because I don't know exactly how complex numbers works :(
16:45 whiteknight plobsing: not to mention the issues you mentioned, with ExceptionHandler and Sub now needing to be really smart, etc
16:46 whiteknight fbrito: Sure, what problems are you having?
16:47 plobsing whiteknight: its not just exceptions forcing stuff on subs. look at all the different types of flags that can be applied to a sub during its lifetime. *NONE* of them are information the sub needs. They're all information other subsystems are too lazy to keep track of themselves.
16:47 whiteknight msg kapace_: Yes, that's right. Don't worry about a pull request, I'll just pull the commit directly now. Thanks!
16:47 aloha OK. I'll deliver the message.
16:48 kapace_school whiteknight: im here
16:48 whiteknight plobsing: right. No argument there
16:48 fbrito whiteknight: ahhh, my bad. I just figured out that I have to leave :(
16:48 whiteknight kapace_school: okay. I'm going to merge your changes, test, commit, and approve your task
16:48 kapace_school ok thanks :)
16:48 cotto_work NotFound: ping
16:50 NotFound cotto_work: pong
16:50 plobsing Are you a vtable? Are you a method? Are you a continuation? Are you a generator? Are you a main sub? None of these are answers a sub needs to know how to provide.
16:51 user joined #parrot
16:52 user left #parrot
16:52 theory joined #parrot
16:53 cotto_work NotFound: can you review https://github.com/pitoco/parrot/blob/c00dae ?
16:53 whiteknight plobsing: that's true, but at the same time those are decorations that do apply to the sub
16:53 whiteknight plobsing: we don't attach :main to a ResizablePMCArray
16:54 whiteknight (We may want to attach it to a MultiSub, or something else more exotic, but that's a different issue)
16:54 cotto_work NotFound: sorry.  this one: https://github.com/pitoco/parrot/blob/c00da​e35e65c0d92016e798b1f9ee19569b25451/README
16:55 whiteknight plobsing: In reality, a compiler should return a PackFile PMC. That PackFile should be able to tell us "Which is your :main Sub?" and return that, or be able to return a list of subs by name, or be able to execute :load or :init subs
16:55 NotFound cotto_work: my eyes hurt
16:56 cotto_work do you mean that the README isn't very good?
16:56 plobsing whiteknight: I *want* to attach main to arbitrary PMCs. (1) so people can have main subs that implement invocable but don't subclass sub. (2) packfiles can be more than just code, a data packfile should be able to have an arbitrary PMC as the "main" pmc (I want to use this for freeze/thaw).
16:56 plobsing atrodo: why use only a single signature for nci subs? that a throwback to bad old perl5 xs. I can think of a number of ways of streamlining NCI (fewer supported types, less indirection, etc).
16:56 NotFound cotto_work: looks like an automatic translation.
16:57 plobsing whiteknight: :load/:init distinction is wrong. There should only be one "call this before calling main" type. It shouldn't matter where the packfile came from.
16:58 cotto_work NotFound: is https://github.com/pitoco/parrot/blob/6a7fc​dcda150be9cd3f4c5248f86578a08c4ba13/README any better?  I didn't notice that he made some revisions.
16:58 cotto_work He says he's native Spanish speaker.
16:58 atrodo plobsing> Yes and no. NCI should still be supported.  But when lorito calls C, I want that transition to be streamlined
16:59 NotFound cotto_work: no native speaker that I know can write "Parrot Bajo Los Derechos del Autor"
16:59 plobsing atrodo: the "single signature" interface is the op interface. why have 2 levels of single-sig?
16:59 atrodo plobsing> So instead of adding the complexity to lorito in how to translate and call a NCI method, we pass that complexity onto delegate C function
17:00 plobsing atrodo: you're just passing the buck and in doing so making it harder to do the task right or efficiently
17:00 whiteknight plobsing: I don't find much to disagree with what you said.
17:00 atrodo plobsing> Then I suspect we have a miscommunication
17:01 cotto_work NotFound: that's disappointing.  It looks like the fixes might have been cleaning up after an automatic translation.  I'll what I get if I put the README through Google translate.
17:01 atrodo hold on
17:01 whiteknight :main should be attachable to any sub as determined by the Compiler. The packfile should have a PMC * main attribute that the compiler can fill with anything and that we can query
17:01 whiteknight :load/:init is wrong and extremely problematic. Much code can be cleaned up significantly or deleted entirely without that garbage
17:02 NotFound google gives some results for "bajo los derechos del autor", most look like foreign translators, but maybe some are native. Maybe I'm wrong, but is not a current usage in Spain at least.
17:02 plobsing whiteknight: fully agree, my current task is to untangle things enough to hook things up that way.
17:02 whiteknight plobsing: For NCI with multiple signatures, are you thinking of something like MultiSub with NCI members? If so we can get that to work pretty cheaply by unifying NCI and PCC signatures
17:03 whiteknight assuming it's "cheap" to unify those things
17:03 plobsing one implementation I can envision (at M0) is an "nci_call" op that takes an array of flags and can pull things directly out of registers
17:03 whiteknight (I think it is. Agreeing on the design will be the hardest part)
17:03 whiteknight that's something I was thinking of too
17:03 whiteknight brb, food
17:04 cotto_work NotFound: it's not identical to what Google translate comes up with.
17:04 ligne left #parrot
17:04 NotFound cotto_work: is no the worst translation I've seen, but is a good example of what I have in mind when I say that I prefer not having translations better than having bad an incaurate ones.
17:05 kapace_school cotto_work: I know the guy, he just doesn't know english too well, so i think he got a little help from google translate with the copyright part
17:05 plobsing unifying pcc and nci signatures is a bad idea. pcc does things nci doesn't want to do. nci does things pcc can't even dream about. NCI is currently complicated by the fact that it *has* to talk pcc. take that away, give it an interface that fits it better, and things get easier (for the NCI implementor, likely me).
17:06 cotto_work kapace_school: thanks.
17:06 NotFound I'm not saying that is cheat using software, just sayd that looks as bad as automatics.
17:06 cotto_work NotFound: do you think it's worth putting in the repo?
17:06 NotFound cotto_work: no
17:07 atrodo plobsing> In my little lorito world, you have two types of PMCs that are callable.  Codesegs and CFunctions.  Codesegs are byte code, CFunctions are functions adhering to the single signature.  That signature is the interp, the context and an array of PMC arguments, just like the codeseg receives.  This allows the CFunctions, which could be a nci/ffi translation function, to translate those...
17:07 atrodo ...arguments and call the final C call.
17:07 kapace_school I agree, I think he should clean it up, go over it again
17:09 fbrito (so, I have never studied complex numbers in school, so I will have to make really stupid questions right now :P) 3 + "1+1i" = 4, right?
17:09 PerlJam fbrito: no
17:09 fbrito oh
17:10 plobsing atrodo: treating cfuntions as PMCs is the wrong way to go for something being compiled down to C - way too dynamic for most cases.
17:10 NotFound That depends. If you convert the string "1+1i" to number or itegere, you just get the "1"
17:10 cotto_work kapace_school: thanks.  That's what I've recommended.
17:10 PerlJam fbrito: 3 + <1 + 1i> == <4 + 1i>
17:11 PerlJam fbrito: add the real parts and imaginary parts separately.
17:11 fbrito ah, forgot to explain all the details :P
17:11 fbrito I am working on a GCI task to add "addition/subtraction" of Complex and PMC Matrixs to Numerical Matrix, so I must return a Numerical Matrix
17:13 fbrito (http://www.google-melange.com/gci/task/show/googl​e/gci2010/parrot_perl_foundations/t129151957121)
17:13 plobsing atrodo: also, array of PMC arguments requires callers to encapsulate arguments in PMCs even when neither the caller nor the callee have any use for such encapsulation. direct register manipulation guided by flags gives a means of providing access to any and all functionality without unnecessary abstraction layers.
17:14 plobsing you could of course implement a "pass an array of PMCs" system on top of this
17:14 fbrito VTABLE_get_number on "1+1i" returns 1, right?
17:16 atrodo plobsing> Then I must have misunderstood.  I thought one of the guiding principles of lorito was to simplify/speed up calls, C or otherwise.  My design has been based around that
17:17 atrodo But if simplification is not an issue, then yes, flags and register manipulation as it exists today would work
17:17 plobsing it is. having unecessary abstraction layers is counter productive for speed
17:19 plobsing the way I see this working is something along the lines of "nci_call 'function_name', [flag0, flag1, etc]". You can build an abstracted system on top of this (eg: using dlfunc and CFunction PMCs), but the lowest levels need to be fast.
17:19 moritz fbrito: sadly parrot's numification vtables only support built-in numeric types. Which means you're pretty much screwed when it comes to non-built-in types (Complex, bigint and so on)
17:23 whiteknight plobsing: I agree that NCI and PCC signatures aren't directly interchangable, but you can use the same "grammar" to compose them and understand them
17:24 fbrito moritz: hm, I see... but I will go over my code again, because additions between Numerical and Complex matrices are working fine for me, but subtraction is not. Maybe I did something wrong
17:24 plobsing whiteknight: I'm actually moving away from string signatures altogether. gives people too many expectations of "readability", an attribute that is *way* too subjective.
17:25 whiteknight plobsing: PCC signatures have the nice benefit that the function pass and return values are clearly separated, that we use capital letters to show the Parrot type (INSP) being operated on, etc
17:25 whiteknight a pointer taken from a PMC is different from a pointer taken from a STRING. We could have Pv and Sv respectively to show how the Parrot type interacts with the native type for the call
17:26 whiteknight fbrito: let me know if there is any code you want me to look at
17:26 plobsing whiteknight: I agree its nice. But whenever we've discussed changing NCI signatures, it's become a bikeshed-fest. Couple that with the problems we've had in the past for *parsing* these signatures, and you might get an idea of why I don't like the idea of signature strings.
17:27 allison left #parrot
17:27 whiteknight plobsing: like I said, coming up with a workable design is going to be much harder than any particular implementation
17:28 whiteknight plobsing: if not string signatures, what? FixedIntegerArrays like we used in days of yore?
17:28 plobsing that's what the internals are using now. I got fed up and decreed "you want the strings? you can't handle the strings!"
17:28 whiteknight (plobsing: I really feel like I need to set aside some time one day to really pick your brain in-depth about some of these issues)
17:32 whiteknight it seems like everything that I want to see done, from removing IMCC, cleaning up exceptions, handlers, and Subs, and getting a workable API with respect to these things all hinge on our ability to redesign/reimplement proper PackFile PMCs
17:32 dalek TT #1886 created by coke++: set_string_native() not implemented in class 'TclString'
17:32 dalek TT #1886: http://trac.parrot.org/parrot/ticket/1886
17:33 cotto_work One of the subjects of interest last night was Factor's ffi, "alien".  atrodo or plobsing, do either of you have the tuits to look into how it works?
17:33 plobsing I know Foctor uses libffi internally.
17:33 plobsing and I've looked into how libffi works
17:34 atrodo cotto_work> what was the main pique in interest with Factor?
17:34 plobsing it's just pretty syntax. parrot NCI and M0 especially shouldn't be concerned with having pretty syntax.
17:35 whiteknight EXACTLY
17:35 cotto_work atrodo: figuring out a sane ffi that doesn't exclude win64 and msvc
17:35 atrodo cotto_work> and it sounds like Factor can do that?
17:36 whiteknight cotto_work: for Parrot-internal things, we can keep tight control over things like parameter types and calling conventions, and we can brew our own limited FFI on those systems
17:36 cotto_work whiteknight: sure but M0 will eventually need to interact with external libraries.
17:37 whiteknight cotto_work: right, that's the hard part. We can go the brew-your-own method now to get the internals working
17:37 atrodo cotto_work> Not a fan of factor's docs so far
17:37 cotto_work I'd prefer to have only one system if possible.
17:37 plobsing whiteknight: M0 internals shouldn't use ffi. ffi implies dlfunc. we want static calls when we compile down to C where possible.
17:38 whiteknight plobsing: right. I'm just making a point
17:38 * plobsing may have misunderstood
17:39 cotto_work Static calls imply a C-based runcore though.  That's fine during the early implementation but not too much further beyond that.
17:39 atrodo Especially when you start talking about other implementations that are no't written in C
17:40 cotto_work atrodo: exactly
17:40 fbrito1 joined #parrot
17:40 whiteknight that idea confuses me. what other serious options do we have that aren't written in C or aren't C-compatible?
17:40 plobsing semantics that allow for static calls don't require them
17:41 kapace_school left #parrot
17:41 atrodo whiteknight> Javascript
17:41 whiteknight and are we talking about the Lorito assembler, or the actual Lorito runcore?
17:42 plobsing wait, lorito is low-level, but still somehow abstract enough to run on javascript? can I have a puff of whatever you're smoking?
17:42 whiteknight The first is fine to write in whatever language we want to waste our time with. The second brings serious performance implications that would make Parrot unusable in most cases
17:42 whiteknight plobsing: exactly. A Lorito runcore written in JavaScript is nice as a "hey we did it" academic exercise, but it worthless in reality
17:43 cotto_work whiteknight: different Lorito interps serve different purposes.
17:43 fbrito left #parrot
17:43 whiteknight cotto_work: perhaps my hangup here is that I can't invision a different purpose where the performance problems of e.g. running Parrot on JavaScript wouldn't be a huge limiting factor
17:44 dip left #parrot
17:44 atrodo whiteknight> Let's say we have a firefox plugin that allows it to load bytecode and run parrot code instead of javascript.  What happens when we don't have that plugin?  What if we could also have a javascript that would run the bytecode in those cases?
17:44 cotto_work I'm not sure if a hll implementation would be terribly useful beyond the prototyping stage.
17:44 cotto_work (apart from something like atrodo suggested)
17:44 whiteknight atrodo: If we don't have the plugin, I don't think the answer should be "Run so slowly that everybody learns to hate and avoid Parrot"
17:45 whiteknight or "surprise the poor user with abnormally low performance"
17:45 cotto_work whiteknight: gtw compiles java to classes to js.
17:45 atrodo But who's to say how slow it would be?  Have you seen the amazing things people are doing with javascript these days?  I hardly call some that slow
17:45 atrodo Or, what about java?
17:45 atrodo or .net?
17:45 whiteknight cotto_work: And how many people in this world are using gtw for serious things? And is the performance any good?
17:46 fbrito1 whiteknight: this is what I have so far: http://pastie.org/1365776
17:46 fbrito1 (task: http://www.google-melange.com/gci/task/show/googl​e/gci2010/parrot_perl_foundations/t129151957121)
17:46 cotto_work whiteknight: istr that they use it for gmail
17:46 fbrito1 is now known as fbrito
17:48 whiteknight fbrito: that failing test you have looks correct
17:48 fbrito oh wait, ahhaa
17:48 fbrito copied the wrong result, sorry
17:50 whiteknight cotto_work, atrodo: I'm not going to suggest that we cannot ever build a Lorito runcore on JavaScript or anywhere else, but the primary libparrot implementation needs to be done in something low-level and speedy
17:50 plobsing http://code.google.com/p/emscripten/ - a C implementation gives you a Javascript implementation
17:50 plobsing no need for javascript considerations
17:51 cotto_work whiteknight: I agree.  I'm just saying that it's important to be able to have sever implementations of the M0 interp.
17:51 whiteknight cotto_work: I'll just have to follow your lead on that one, because I am not going to be losing any sleep over that particular consideration
17:52 cotto_work *several
17:52 fbrito whiteknight: http://pastie.org/1365776 take a look again, please
17:52 whiteknight Parrot is not just a small Lorito runcore, it's a substantial runtime environment as well. Writing a runcore in language X is basically worthless if we don't have a runtime to use with it
17:53 whiteknight of course eventually most of our codebase will be written in M0 itself
17:53 cotto_work Yes.  That's when it gets interesting.
17:53 cotto_work well, more interesting
17:53 atrodo whiteknight> Which makes the ability to have other implementations very feasible.
17:54 fbrito whiteknight: ah, nevermind. I think I found what was wrong
17:54 plobsing most. but without call-outs to C, you can't really be very useful as a desktop VM.
17:54 whiteknight atrodo: Like I said, I'll go along with it
17:55 plobsing Parrot *wants* to be able to deal with files and directories and syscalls. Large swaths of our codebase handle these things. None of those have any meaning to JS.
17:55 whiteknight plobsing: they could to a desktop JS interpreter, but certainly not JS-in-browser
17:56 whiteknight cotto_work: some of the questions I had that I mentioned earlier involving concurrency aspects
17:56 plobsing Any reason someone would be compiling lorito to JS to run in node? Other than because they can?
17:57 whiteknight If interp is going away and we have contexts as the new object being passed around, what happens to data that wants to be global (namespaces, metaclass definitions, the IGLOBALS array, etc)?
17:57 cotto_work What do you mean my "in node"?
17:57 atrodo cotto_work> node.js
17:57 cotto_work ah
17:57 whiteknight plobsing: Actually, I'm hoping it goes the other way around and people are running JavaScript-on-Parrot instead of node.js
17:58 whiteknight so for instance if we have two threads running simultaneously, I assume each of them have their own parent Context. If one of them does "$P0 = new ['Foo']", where does it look up the definition of Foo?
17:58 plobsing what about jshll-on-jsparrot-on-jshll-on-cparrot? XD
17:58 whiteknight and do both threads share the same metaclass object?
17:59 whiteknight if we share, we obviously need to put locks and other sync crap around every single instantiate call, every single find_method call, etc. And those are going to happen a lot
18:00 whiteknight But if we copy, we get into situations where "$P0 = new ['Foo']" on one thread creates a very different and possible incompatible object than that same line on a different thread
18:00 cotto_work plobsing: put GGE on Rakudo on that and you have a winner
18:01 whiteknight Obviously how ever we want to go about threading there are going to be pros and cons. I just want to know what the strategy is
18:01 cotto_work whiteknight: that may be desirable for e.g. PL/something where you don't want the interp to be able to do any damage
18:02 whiteknight cotto_work: what, the unsynchronized copies? It does have benefits in terms of performance (no implicit synchronization, no locking), but is bound to create some lots of PEBKAC bugs and understanding fialures
18:02 plobsing whiteknight: I like message passing for that. Multicast for things like addmethod. You're consistent only when you've received all the ACKs. (I haven't considered contention yet).
18:03 fbrito left #parrot
18:03 whiteknight But we also run into problems where to share a Foo from Thread A, we need to share it's metaclass too, which may create a conflict with a similiarly-named but internally-different Foo on Thread B
18:04 whiteknight plobsing: yes, I just want to make sure everybody is aware that concurrency is a big thing which Parrot doesn't current support and we need to keep it in mind because we can't not support it forever
18:04 whiteknight I don't even care if it's threads or pthreads, or whatever. We could use stackless threads or Erlang-style actors, or anything
18:05 whiteknight or we could go the Python route (I hope not) and threads are basically forks
18:06 fbrito joined #parrot
18:07 whiteknight cotto_work: I would also like some clarification on point A in the braindump: Why do we want Strings to be PMCs, but keep them in separate registers?
18:09 whiteknight blah. I think what I need to do is spend a lot more time with this braindump and a Quija board, write out a few rambling blog posts, and attain Nirvana
18:09 cotto_work Unifying them means simpler code and fewer paths, but I don't recall the reason for having separate registers.
18:09 whiteknight it will be a slow process
18:09 atrodo whiteknight> obtain
18:10 cotto_work dukeleto might remember
18:10 whiteknight atrodo: attain
18:10 cotto_work or I might after I get a decent amount of sleep
18:10 atrodo whiteknight> New word of the day!  Hurray!
18:10 whiteknight :)
18:11 whiteknight fbrito: where are you now? Ready to start talking merger?
18:11 contingencyplan joined #parrot
18:11 atrodo cotto_work> I kept the S register, but changed it to symbol, not string.  So strings become real PMCs
18:12 fbrito whiteknight: yes :D. just a second
18:12 whiteknight atrodo: okay, so what are symbols?
18:12 plobsing since we're talking lorito, one feature I've found missing in Parrot is smalltalk's "become:". It needs support from low-levels of the VM (esp. GC). Not sure if that should be under consideration.
18:12 cotto_work whiteknight: interred strings
18:12 cotto_work plobsing: what does that do?
18:13 cotto_work whiteknight: not unlike CONST_STRING now in C
18:13 plobsing cotto_work: http://gbracha.blogspot.com/2​009/07/miracle-of-become.html
18:13 cotto_work is a miracle
18:14 plobsing I wanted it for lazy constants
18:16 whiteknight I imagine that implementing "become" would require a 2-part PMC structure (container/value), which would go a long way towards solving many other problems we have
18:16 whiteknight copying/compacting GC, l-value semantics, etc
18:16 cotto_work whiteknight: that sounds not unlike REPR/HOW
18:16 whiteknight cotto_work: no, not entirely
18:17 atrodo cotto_work> In a P&W sort of sense, would become be as easy as swapping the lookup and vtable?
18:18 atrodo or am i missing something subtle?
18:18 plobsing P&W are smalltalkers. I think they would have mentioned that somewhere if it did.
18:19 atrodo aloha, p&w?
18:19 aloha atrodo: p&w is http://tinyurl.com/23dfwut
18:19 plobsing I assume they are the same p&w behind ometa. and cola. and all those other awesome things.
18:20 atrodo no mention in the paper about become
18:21 dalek parrot-linear-algebra: beda2ad | kapace++ | / (2 files):
18:21 dalek parrot-linear-algebra: Addition and Subtraction for ComplexMatrix2D and NumMatrix2D or PMCMatrix2D
18:21 dalek parrot-linear-algebra:  And tests too.
18:21 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/beda2adad8
18:22 cotto_work atrodo: I think so but I need to understand become better.
18:23 plobsing but it would be really cool if lorito's architecture turned out to make become: trivial.
18:23 atrodo The way the blog talks about it, you have to look for all pointers to it and change it to point to something new.  Couldn't you just clone that something new into the the original refrence?
18:23 fbrito whiteknight: here it is :) https://github.com/Whiteknight​/parrot-linear-algebra/pull/27 please, tell me if there is anything wrong
18:23 atrodo and vis-versa
18:24 plobsing atrodo: I think that's how the object-table implementation worked
18:26 whiteknight fbrito: nice. testing now
18:28 dukeleto hola
18:28 whiteknight fbrito: pushed. I'm closing the task now. Congrats!
18:29 fbrito oh wait, I have to submit the work on the task
18:29 dukeleto NotFound: ping
18:29 whiteknight yes, do that
18:30 cotto_work dukeleto: do you happen to recall why we decided on separate registers for Strings while using the same internals as PMCs?
18:31 fbrito whiteknight: ok, done
18:32 dalek parrot-linear-algebra: ce12197 | fernandobrito++ | t/pmc/nummatrix2d.t:
18:32 dalek parrot-linear-algebra: Add add/subtract tests on NumMatrix2D
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/ce121976d9
18:32 dalek parrot-linear-algebra: 2f1c96c | fernandobrito++ | src/pmc/nummatrix2d.pmc:
18:32 dalek parrot-linear-algebra: Add/Subtract other matrix types in NumMatrix2D
18:32 dukeleto cotto_work: i think it was so that the GC-related code for dealing with them could be unified
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/2f1c96cd52
18:32 dalek parrot-linear-algebra: ff22df3 | Whiteknight++ | src/pmc/complexmatrix2d.pmc:
18:32 dalek parrot-linear-algebra: fix ComplexMatrix2D.conjugate so it works again on non-square matrices
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/ff22df3268
18:32 dalek parrot-linear-algebra: 71df47f | Whiteknight++ | t/methods/complexmatrix2d/row_combine.t:
18:32 dalek parrot-linear-algebra: fix ComplexMatrix2D.row_combine test
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/71df47ffbc
18:32 dalek parrot-linear-algebra: 5494b0c | fernandobrito++ | t/pmc/nummatrix2d.t:
18:32 dalek parrot-linear-algebra: [t] Add/Subtract other matrix types in NumMatrix2D
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/5494b0ca6a
18:32 dalek parrot-linear-algebra: a129e9c | Whiteknight++ | / (2 files):
18:32 dalek parrot-linear-algebra: Merge remote branch 'origin/gci_nummatrix'
18:32 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/a129e9c989
18:32 cotto_work dukeleto: I'm asking why they retain separate registers.
18:33 dukeleto cotto_work: i am not sure we have a good reason for that.
18:33 dukeleto cotto_work: it might have performance reasons.
18:34 dukeleto cotto_work: i am not sure, but objects and strings probably have different usage patterns, and perhaps the GC and/or allocator/etc can utilize that information
18:34 dukeleto cotto_work: but i think we could still go either way. I don't know of a definitive reason to have S/P or combine them into P.
18:35 cotto_work I recall that our hope was that the gc would be smart enough to deduce the usage patterns and dtrt.
18:36 dukeleto cotto_work: that begs the question. Why not just have one datatype for integers and numbers? Why do we need I and N?
18:36 * dukeleto puts on his devils advocate hat
18:37 cotto_work I'm not entirely sure we need N.
18:37 fbrito left #parrot
18:37 cotto_work actually, js will want it
18:38 dukeleto do we have a Spanish speaker in the house?
18:38 cotto_work well, js will want a numeric value.  not necessarily N
18:38 atrodo actually, and i'm probably alone on this, why don't we also have unsigned ints?
18:39 cotto_work dukeleto: why?
18:39 dukeleto A GCI student translated our REAME to Spanish: https://github.com/parrot/parrot/pull/24
18:39 dukeleto README, rather
18:39 NotFound dukeleto: pong
18:40 plobsing atrodo: I like to think of I-registers as just a piece of space. I can imagine a uadd $I0, $I1, $I2.
18:40 dukeleto atrodo: our plan is to have the default size of ints be the widest we support, then provide ops that act on subsets of the widest ints, which will emulate all the other types of smaller ints
18:40 cotto_work plobsing: what's what we're looking at
18:40 dukeleto NotFound: see pull request above, please
18:40 dukeleto NotFound: am I correct in remembering that Spanish is your mother tongue?
18:40 atrodo not as alone as i thought.  Hurray!
18:41 dukeleto atrodo: parrot actually does have Uints internally, but PIR doesn't know about them, currently
18:41 plobsing dukeleto: does that mean I get to have movzwq?
18:41 dukeleto plobsing: tell me what that is supposed to do
18:41 atrodo I cannot tell you how agitated i was to learn that java completely refused to have anything but signed integers
18:42 plobsing dukeleto: move a word into a quad using zero-extension (as opposed to sign extension)
18:42 NotFound I told you guys. I dislike very much bad translations.
18:42 plobsing (used to convert unsigned shorts to unsigned long long)
18:43 dukeleto NotFound: ?
18:43 dukeleto NotFound: please explain, i don't know what you mean
18:43 dukeleto NotFound: is the translation horrible?
18:43 fbrito joined #parrot
18:43 dukeleto NotFound: i took some spanish classes in high school, but I want to know if it sounds reasonable to a native speaker
18:43 NotFound dukeleto: I've seen worses.
18:44 dukeleto NotFound: is it so bad as to make a Spanish speaker not want to get involved with Parrot? Or is it a good start that can be improved on?
18:47 particle dukeleto: there's talk on this very subject in the logs from earlier today
18:47 NotFound dukeleto: I guess that all spanish people that I know would prefer to read the english version, even the less used to english.
18:48 particle iirc the last word was 'tell the student to give it a once-over to clean it up'
18:48 cotto_work particle: this is a different file
18:48 particle ah, apologies.
18:48 dukeleto we have many translations going on
18:48 cotto_work np.  I was confused too.
18:48 particle i thought it was README earlier today
18:48 dukeleto what i am talking about is the spanish translation of the README
18:48 dukeleto i haven't backlogged, still drinking my first cup of coffee
18:49 dukeleto NotFound: what about people who only speak spanish and no english? What do they get? Chopped liver?
18:49 cotto_work no, I'm lying.  That's the same file.
18:49 dukeleto particle: "clean it up" isn't exactly very specific.
18:50 plobsing dukeleto: worse - esperanto.
18:50 particle dukeleto: check the log around 0900L
18:50 particle that's 9am local time
18:50 dukeleto particle: danke
18:50 NotFound dukeleto: Don't know. There are people that says that they prefer providing bad translations than none. I'm not one of these people.
18:51 particle i know several spanish language teachers
18:51 particle i could easily convince one or more to have a look this weekend
18:51 particle if required.
18:52 NotFound particle: language teacher usually fail on the technical part.
18:52 particle ok, well now i know it's the technical parts that are troubling to you :)
18:52 particle i might have missed that earlier
18:53 dukeleto NotFound: can you give me some constructive feedback? Does it just sound rough, or are there things that are actually wrong in the translation?
18:53 fbrito left #parrot
18:53 dukeleto I am leaning towards just merging it and letting people fix it up
18:53 cotto_work dukeleto: I added some comments already to the gci task
18:54 dukeleto cotto_work++
18:54 whiteknight my brother knows spanish very well. But I won't be in touch with him until this weekend
18:55 dukeleto cotto_work: i think we need to think more about how the licensing of LLVM affects Parrot
18:55 NotFound dukeleto: the ugliest parts for native readers are lacks of concordance,
18:55 NotFound And the technical confusing parts are words that should not be translated.
18:56 whiteknight dukeleto: My initial reaction would be "not at all"
18:56 whiteknight dukeleto: licensing only really comes into play if we start hosting their code in our repo
18:56 NotFound For example ICU -> UCI
18:56 whiteknight or shipping their code in our tarballs
18:57 dukeleto whiteknight: not quite
18:57 dukeleto NotFound: ok, i see what you are talking about. It needs more work. Sounds good to me
18:57 whiteknight dukeleto: what specific concerns do you have?
18:57 dukeleto whiteknight: LLVM has a special license which has various clauses about patent restrictions
18:58 whiteknight dukeleto: link?
18:58 dukeleto whiteknight: i.e. that downstream users don't have patent protection or something like that. chromatic was talking about it last night
18:58 dukeleto whiteknight: i don't have a link
18:58 atrodo http://llvm.org/releases/2.8/LICENSE.TXT
18:58 NotFound "Una búsqueda en Internet se localizara una variedad de instaladores de git" This doesn't make sense.
18:59 NotFound Is agramatical.
19:00 whiteknight atrodo++
19:00 bluescreen jeje... notfound totally
19:00 whiteknight dukeleto; I don't see anything in that license that would have any implications for Parrot
19:00 dukeleto NotFound: thanks for your feedback
19:01 dukeleto whiteknight: yes, but that file isn't very useful. Other parts of LLVM have their own licenses, so it could be buried deeper
19:01 dukeleto whiteknight: we need to ask chromatic where he heard or saw that stuff
19:01 NotFound Sorry for being rude but, as I said, I hate bad translations.
19:02 bluescreen who's taking care of spanish translations?
19:02 bluescreen google?
19:02 whiteknight dukeleto: Okay, we can ask chromatic. I whould be *highly* surprised if anything in the LLVM license or the licenses of it's components would have a negative effect on Parrot
19:03 particle bluescreen: this particular transation was created by a secondary school student
19:03 particle who may be non-technical, iunno.
19:04 bluescreen particle are any of these students spanish speakers.
19:04 particle creo que si
19:04 NotFound Tell it not worry too much, I've read (and paid for) horribly translations written by university teachers.
19:04 gbacon_ joined #parrot
19:04 bluescreen lol...
19:05 * particle doesn't know how to quickly write accented characters, so give him a break
19:05 NotFound (the "paid for" part is the reason of my hate)
19:05 bluescreen particle no importa, almost anybody uses them in irc/im conversation
19:05 NotFound particle: Ñáñáñá.
19:06 atrodo hehe
19:06 bluescreen s/anybody/nobody
19:07 dukeleto Some of my notes (incomplete) from the Lorito meeting last night: https://gist.github.com/736628
19:07 whiteknight If the quality of translation submissions is low, we should make fewer translation tasks for GCI
19:07 dukeleto whiteknight: our polish translation got good marks for tadzik, so I wouldn't go as far as to say "our translation submissions are low-quality"
19:08 dukeleto Polish, rather.
19:08 cotto_work dukeleto: and I thought my notes were raw
19:08 atrodo dukeleto> https://gist.github.com/736285/ # My comments on cotto's notes
19:08 atrodo i noticed that too cotto_work
19:08 dukeleto cotto_work: ha! I took various notes in various forms. Those are the ones I typed.
19:09 * dukeleto also has a pic of the whiteboard
19:09 plobsing what is the benifit of these translations? if you don't speak enlish, your odds of getting direct support (almost necessary to use parrot at this point) are very low. Sorry if I sound anglo-centric, but that is my perception of the current state of affairs.
19:10 he_ joined #parrot
19:10 NotFound plobsing: I completely agree, at least for Spanish part.
19:10 whiteknight we are trying to get more people involved. More developers, including those for whom english is not a first language
19:10 dukeleto plobsing: i want to fix the anglo-centric feel of Parrot. I want to encourage developers that don't speak English well to get involved
19:11 atrodo dukeleto> "Immutable context data structure"  Can you expand on that?
19:11 NotFound dukeleto: you'll not encourage anyone with bad and incomprehensible texts.
19:12 dukeleto atrodo: some Contexts can be made immutable
19:12 dukeleto NotFound: Yes. Which is why I want good translations. Is that not clear?
19:12 NotFound dukeleto: yes, but you don't have them.
19:13 atrodo dukeleto> So, what is immutable at that point?  PC? Registers? Parent Context?
19:13 atrodo All of the above?
19:14 whiteknight NotFound: we aren't obligated to put a bad translation in our repo
19:14 whiteknight if the translations are bad, "Thanks but no thanks"
19:15 dukeleto NotFound: We have a good Polish translation. Are we on the same planet? Are you just playing devils advocate really well?
19:15 whiteknight dukeleto: He's saying that the Spanish translations have been bad
19:16 cotto_work Isn't it just this one README that's been translated into bad Spanish?
19:16 dukeleto atrodo: i don't think the specifics have been thought about. They need to be explored
19:16 NotFound dukeleto: I can't judge Polish language, I talk about what I'm asked for: the Spanish ones.
19:16 atrodo dukeleto> Okay.  It just piqued my interest since both you and cotto had that
19:17 dukeleto NotFound: I appreciate your constructive criticism. We will make the spanish translation better.
19:17 cotto_work chromatic essentially said "write that down so I don't forget to think about it."
19:17 NotFound dukeleto: I appreciate the effort, but I'm not optimistic about its results.
19:17 dukeleto NotFound: thanks
19:17 atrodo cotto_work> :D
19:28 Yuki`N joined #parrot
19:36 Nol888 joined #parrot
19:36 kapace_ Thanks for approval whiteknight, another task bites the dust :)
19:36 whiteknight kapace_: awesome! You're doing great
19:36 whiteknight I  need to make more tasks so you can stay busy!
19:36 kapace_ for sure, keep them coming!
19:37 Nol888 whiteknight, I think I found a bug in the Integer PMC, though I'm not sure.
19:37 Nol888 http://lists.parrot.org/pipermail/p​arrot-dev/2010-December/005175.html
19:37 cotto_work Nol888: nice.  nopaste what you've got
19:37 Yuki`N left #parrot
19:38 Nol888 is now known as Yuki`N
19:38 whiteknight Nol888 yes, I read that this morning
19:39 jan joined #parrot
19:39 whiteknight yes, it does look like a bug. Can you submit a ticket on trac.parrot.org/parrot with that info in it?
19:41 Yuki`N Which component is this under? Core?
19:43 dalek TT #1887 created by Yuki`N++: Integer PMC i_multiply bug
19:43 dalek TT #1887: http://trac.parrot.org/parrot/ticket/1887
19:43 whiteknight yes, Core
19:44 Yuki`N Done, as you can see.
19:44 Yuki`N :P
19:44 whiteknight Thanks!
19:45 Yuki`N And this is why test code coverage is important. :P
19:45 Yuki`N Too bad nobody likes writing unit tests. xD
19:46 whiteknight Yuki'N: Keep those tests in, but mark them TODO so we know when it's fixed
19:46 Yuki`N Ok.
19:46 allison joined #parrot
19:46 Yuki`N When todo tests pass, does it give special notification?
19:47 whiteknight yes
19:47 whiteknight it says "test unexpectedly PASSED"
19:47 Yuki`N And it stops?
19:47 whiteknight no, keeps going
19:47 Yuki`N Oh.
19:47 whiteknight test passing is good
19:47 Yuki`N Right.
19:47 whiteknight the test harness gives a report at the end
19:47 whiteknight so we will see a list of tests that pass and tests that fail
19:48 Yuki`N integer.pmc's code coverage is up to 75% when I stopped last night after finding the bug.
19:48 whiteknight what was it at when you started?
19:48 Yuki`N 55%
19:48 aloha 0.55
19:59 Yuki`N Ugh apparently I fucked up my pull request by merging in commits from upstream.
20:01 lucian joined #parrot
20:04 whiteknight :)
20:04 whiteknight Yuki'N: You a 4channer?
20:04 gbacon_ left #parrot
20:05 smash left #parrot
20:08 Yuki`N whiteknight, I lurk.
20:09 Eclesia joined #parrot
20:09 Eclesia hello
20:09 whiteknight hello Eclesia
20:10 Coke joined #parrot
20:11 dukeleto Eclesia: welcome!
20:12 Coke whiteknight: more fun tcl failures for you. (see recent nopaste)
20:12 Eclesia thanks, is there an ubuntu repo where we can find the latest parrot vm (2.10)?
20:13 whiteknight Eclesia: Ubuntu packages for Parrot releases are always delayed. I doubt you will find 2.10 now
20:13 whiteknight maybe 2.9
20:13 Eclesia only 2.6 :(
20:15 Coke whiteknight: golfed it down to: "expr ~0"
20:16 plobsing I always thought we had plenty of devs on ubuntu. does anyone have a ppa?
20:17 Coke ppa?
20:17 plobsing aloha, ppa?
20:17 aloha plobsing: No clue. Sorry.
20:17 plobsing aloha: ppa is https://launchpad.net/ubuntu/+ppas
20:17 aloha plobsing: Okay.
20:18 plobsing it basically allows individuals to easily publish their software as 3rd party ubuntu repos
20:21 nopaste "coke" at 192.168.1.3 pasted "golfed previous tcl error somewhat:" (62 lines) at http://nopaste.snit.ch/26944
20:22 rfw joined #parrot
20:22 plobsing https://launchpad.net/~dexter/+archive/parrot-pkg appears to have 2.8 packaged for ubuntu. not sure who this Piotr guy is (not in credits).
20:23 Coke or, call me crazy, we could ask allison to package it.
20:23 plobsing she has some packages, but only up to 2.6 (which is likely what made it into the official repos)
20:25 Coke (tcl) it looks like it might be complaining about bnot, but I do a "loadlib bit_ops" elsewehre.
20:26 plobsing Coke: loadlib or .loadlib?
20:26 Coke 1:.loadlib 'bit_ops'
20:27 plobsing ok, that's the correct one.
20:27 bluescreen left #parrot
20:27 plobsing I hate that 1 easily missed '.' makes all the difference in the world to IMCC
20:27 Coke one might ask why we even have the other one if it's known to DTWT,but I won't. ;)
20:28 plobsing Coke: .loadlib loads a library into IMCC at compile time. loadlib loads a library into the running interp at runtime.
20:28 whiteknight I suspect if Allison had the time and inclination to make Ubuntu packages for us, she would
20:28 plobsing loadlib (the op) does the right thing in some cases (eg: when you want to load a PMC library, when you want to dlfunc, etc)
20:29 Coke plobsing: I did say I wasn't going to ask.
20:29 whiteknight everything IMCC does is equally inferior
20:29 Coke at this point, I just want to know why this code is failing, not why other code I might have written might fail.
20:29 Coke or why IMCC sucks.
20:30 * Coke would just like his HLL to work again, insomuch as it used to.
20:30 Eclesia quick question : I'm doing the build steps for parrot vm. and see this line : auto::opengl -        Does your platform support OpenGL....................no.
20:31 Eclesia what UI system uses parrot ?
20:31 plobsing Damnit Eclesia, parrot is a vm, not a gui library! (nor a miracle worker)
20:32 plobsing ;)
20:32 Eclesia parrot comes with perl language no ?
20:32 allison whiteknight: Parrot is packaged for Debian and synced to Ubuntu (that's the preferred way to do it)
20:32 allison whiteknight: I've submitted the 2.9.1 packages to Debian already
20:33 allison whiteknight: but, it's the 3.0 packages that will be in the next release of Ubuntu (in April)
20:33 whiteknight allison: oh, I wasn't sure about the process. I was just commenting that people shouldn't volunteer you to make those packages if you aren't doing it already
20:33 Eclesia perl has UIs ? (I'm not a perl developer, still java for the moment)
20:33 whiteknight Eclesia: anybody can have a UI if you use the right libraries
20:33 whiteknight Perl has several to choose from
20:33 whiteknight Qt, Tk, Gtk2, Wx, etc
20:33 Eclesia ok
20:33 plobsing Eclesia: parrot comes with a tool (nqp), which is "Not Quite Perl 6". there are several languages that target parrot, but most are external to the parrot project (example: rakudo)
20:33 allison whiteknight: it's okay, I'm on it (it seems like a good thing to use my double connections for) :)
20:34 whiteknight allison: is there documentation about that process anywhere? Like release managering, that would be something good to get many people involved with if possible
20:35 allison whiteknight: yup, it's in docs/project
20:35 allison whiteknight: both a debian packaging guide and an Ubuntu packaging guide
20:35 whiteknight oh, okay. I may have seen those actually
20:35 allison whiteknight: and all the packaging files are in ports/debian too
20:36 whiteknight okay
20:36 allison whiteknight: we have a small glitch with the ports files when we moved to git
20:36 allison whiteknight: I submitted a ticket for it
20:36 Eclesia plobsing: I've seens there was a starting effort for java, you know where I can find thoses nqp ?
20:36 allison whiteknight: haven't checked back to see the progress
20:37 allison whiteknight: (if any)
20:37 whiteknight allison: okay, I remember that ticket. Something with ,gitignore ignoring the ports directory?
20:37 Coke dukeleto noted that you can commit those files regardless.
20:38 allison whiteknight: yeah, it's tricky because we want to commit them, but not include them in the tarbal
20:38 whiteknight right, but there's no real reason to have that folder on the ignore list I don't think
20:38 whiteknight allison: oh, are we using .gitignore to inform tarball file selection?
20:38 allison Coke: I can, but I have to manually edit the .gitignore file, commit the files, and then remove the edit before committing
20:38 plobsing Eclesia: the efforts at implementing Java-on-Parrot never really got off the ground. They are currently housed at http://code.google.com/p/parrot-jvm/ and appear mostly dormant.
20:38 Coke allison: no, you just need to say "-f", IIRC.
20:39 allison whiteknight: it said we were
20:39 Coke I thought we were using MANIFEST.SKIP for that.
20:39 allison Coke: that's pretty dangerous, what if it had some other errors mixed in?
20:39 whiteknight this is an area where it seems we all need more answers
20:39 Coke allison: <shrug> Just reporting what's on the ticket.
20:40 allison whiteknight/Coke: yeah, it's not urgent or anything, just needs a little thought to get our new process straight for some of these edge cases
20:40 Coke though if you're doing a commit of a ports file, I'm not sure what other types of errors could exist.
20:40 whiteknight well, we want porting Parrot to various distrubutions to be as easy as possible
20:41 Coke It's so low on my list of things parrot needs to fix, though, I'm not worried about it. ;)
20:41 allison Coke: ports files are supposed to be stored in the repository, so we have a record of them
20:41 whiteknight I wonder if moving the porting materials out to a separate repo might be worthwhile to avoid stepping on toes
20:41 whiteknight (like Rakudo vs Rakudo Star)
20:41 plobsing Eclesia: what is your interest in parrot? my answers to your questions might be better targetted if I had more info.
20:41 Coke allison: Yes, I know that ports files live in ports/
20:41 allison whiteknight: a separate repository seem like a heavyweight solution for a little git quirk
20:42 allison Coke: oh, I misread
20:42 bluescreen joined #parrot
20:42 Coke I'm saying, if you do a "git commit ports/portsFILE", oops, then "git commit -f ports/portsFILE", I'm not sure what types of errors you are concerned about.
20:42 allison Coke: yes, I just have a deep seated fear of making a commit that wipes out the entire git repo
20:42 Coke so you've been saying for years now.
20:42 Coke I'm familiar with it.
20:43 Coke I believe github will no longer allow you to do that.
20:43 allison Coke: it *shouldn't*, but it makes me really cautious about using -f as part of a regular, expected process
20:43 allison Coke: though, I certainly understand it's a useful tool when it's needed
20:43 allison Coke: I know it's not entirely rational :) fears rarely are
20:44 Coke In the meantime, I'd much rather be able to pass all my tests again and run my test suite in less than 20m. ;)
20:44 allison Coke: limiting the scope of the -f to a single file helps
20:45 atrodo can you do "git add ports/portsFILE" without a -f?
20:45 allison Coke: it's a good perspective on prioritizing time spent, but then that's what I said about the time spent on the whole git migration. I don't expect this process fix will take a git expert more than 15 minutes.
20:46 Eclesia plobsing: I'm actually on of the leader developers of GeotoolKit.org project. it's a huge projet started a long time ago a renamed several times, today it's a half million code lines. As you know java is not anymore in it's glory days. so I'm exploring alternative solutions which could 'understand' java code base will migrating code base to something more 'free', like Fantom, Scala or whatever. So parrot looks like a nice vm, with agnostic philosophy.
20:46 allison atrodo: no, it won't allow it because ports/ is in .gitignore
20:46 Carter joined #parrot
20:46 atrodo allison> okay.  wasn't sure of the mechanics involved
20:46 kendle joined #parrot
20:48 whiteknight Eclesia: At the moment we're not really compatible with Java or JVM bytecode. That's the short answer. We would like to be able to help you, of course, but I want to put that piece of information out there
20:49 whiteknight Eclesia: are you looking to rewrite your code in a new language, or find a new platform to run Java code on?
20:49 Eclesia I dont expect parrot to understand bytecode. but the java language
20:49 whiteknight okay, that's easier to do, I think
20:50 Eclesia whiteknight: I'm searching for both in fact.
20:50 whiteknight ok
20:50 * Coke lied. partcl-nqp master runs the test suite (with failures) in 129s. (fails very early on the longest test, however.) (but tclsh8.5 runs it in < 1s)
20:52 plobsing Eclesia: the perk project aimed to get java-the-language on the parrot VM. sadly, it appears to have been dormant for 2 years (in which time, we've changed a lot). you bring up an interesting issue though. Parrot really should have on-ramps for people trying to flee java-the-vm.
20:52 Yuki`N whiteknight, what should I do about the pull request?
20:52 whiteknight Yuki'N: you have a pull request opened?
20:52 Yuki`N Yeah.
20:53 Yuki`N https://github.com/parrot/parrot/pull/23
20:53 whiteknight I'm going to pull the code into a branch where we can evaluate it
20:54 Yuki`N Ok.
20:55 Eclesia plobsing: I can't find this perk projet, you have a link ?
20:55 dalek parrot/gci_inttestcoverage: 44e2ba5 | (Nolan Lum)++ | / (3 files):
20:55 dalek parrot/gci_inttestcoverage: Fix bug in String PMC with extraneous multimethod.
20:55 dalek parrot/gci_inttestcoverage:
20:55 dalek parrot/gci_inttestcoverage: Increase code coverage of String PMC tests.
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/44e2ba5b68
20:55 dalek parrot/gci_inttestcoverage: 26c3ed3 | (Nolan Lum)++ | t/pmc/string.t:
20:55 dalek parrot/gci_inttestcoverage: Change behavior of exception-related tests.
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/26c3ed32f7
20:55 dalek parrot/gci_inttestcoverage: 67b58a1 | (Nolan Lum)++ | t/pmc/string.t:
20:55 dalek parrot/gci_inttestcoverage: Fix wording.
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/67b58a124e
20:55 dalek parrot/gci_inttestcoverage: 5c746db | plobsing++ | / (2 files):
20:55 dalek parrot/gci_inttestcoverage: eliminate static numbering of ops
20:55 dalek parrot/gci_inttestcoverage:
20:55 plobsing Eclesia: https://github.com/chrisdolan/perk
20:55 dalek parrot/gci_inttestcoverage: static numbers for ops has no meaning. also, opsc generates number automatically
20:55 dalek parrot/gci_inttestcoverage: now, rendering these completely unecessary.
20:55 dalek parrot/gci_inttestcoverage:
20:55 dalek parrot/gci_inttestcoverage: also eliminate a nasty cast (op_func_t* => void** => (void*)() => op_func_t*)
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/5c746dba12
20:55 dalek parrot/gci_inttestcoverage: ead90b8 | plobsing++ | / (2 files):
20:55 dalek parrot/gci_inttestcoverage: eliminate op documentation mentioning defunct CORE_OPS_*
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/ead90b8560
20:55 Coke *DROWNING IN COMMIT MESSAGES*(
20:55 dalek parrot/gci_inttestcoverage: 30bb037 | plobsing++ | src/nci/framebuilder.pod:
20:55 dalek parrot/gci_inttestcoverage: add some documentation about pluggable framebuilder subsystem
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/30bb037df3
20:55 dalek parrot/gci_inttestcoverage: 20ee3ca | plobsing++ | MANIFEST:
20:55 dalek parrot/gci_inttestcoverage: mk_manifest_and_skip
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/20ee3ca438
20:55 dalek parrot/gci_inttestcoverage: 29bd61d | (Gerd Pokorra)++ | t/pmc/string.t:
20:55 dalek parrot/gci_inttestcoverage: remove whitespace
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/29bd61dab2
20:55 dalek parrot/gci_inttestcoverage: 90a31da | cotto++ | examples/pir/md5sum.pir:
20:55 dalek parrot/gci_inttestcoverage: add md5sum tool using MappedByteArray from Kapace++'s gci task
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/90a31da690
20:55 dalek parrot/gci_inttestcoverage: d1ea164 | sygi++ | README.polski:
20:55 dalek parrot/gci_inttestcoverage: polish translation of README
20:55 dalek parrot/gci_inttestcoverage:
20:55 dalek parrot/gci_inttestcoverage: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/d1ea164f5e
20:55 dalek parrot/gci_inttestcoverage: 8d97c3b | sygi++ | README.polski:
20:55 dalek parrot/gci_inttestcoverage: tiny corrects
20:55 dalek parrot/gci_inttestcoverage:
20:55 dalek parrot/gci_inttestcoverage: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/8d97c3bbe0
20:55 dalek parrot/gci_inttestcoverage: d5eb9a4 | dukeleto++ | NEWS:
20:55 dalek parrot/gci_inttestcoverage: Add NEWS item about README translations
20:55 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/d5eb9a4b1e
20:55 atrodo :gasp: :wheez:
20:55 dalek parrot/gci_inttestcoverage: 6878f91 | sygi++ | README.polski:
20:55 dalek parrot/gci_inttestcoverage: tiny corrects
20:56 dalek parrot/gci_inttestcoverage:
20:56 dalek parrot/gci_inttestcoverage: Signed-off-by: Jonathan "Duke" Leto <jonathan@leto.net>
20:56 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/6878f9102b
20:56 dalek parrot/gci_inttestcoverage: 0fa52e7 | (Nolan Lum)++ | /:
20:56 dalek parrot/gci_inttestcoverage: Merge https://github.com/parrot/parrot
20:56 dalek parrot/gci_inttestcoverage: review: https://github.com/parrot/parrot/commit/0fa52e7093
20:56 * plobsing simultaneously curses the commit barage and rejoices in the double karma.
20:56 Coke plobsing: I think one of the best thigns we can do to encourage people to target parrot from java is to make it performant.
20:56 whiteknight Yuki`N: Okay, pulled (obviously). I closed the pull request. I'll close the ticket once it's been tested (we can worry about merge later)
20:56 Yuki`N K.
20:56 Yuki`N Thanks.
20:57 plobsing Coke: an up to date Java language HLL couldn't hurt either. I'm looking into how much work it would take to revive perk.
20:57 Yuki`N How does this karma thing work again?
20:57 plobsing karma Yuki`N
20:57 aloha Yuki`N has karma of 0.
20:57 plobsing Yuki`N++
20:57 plobsing karma Yuki`N
20:57 aloha Yuki`N has karma of 0.
20:57 Eclesia Coke: for the moment I'm not expecting parrot to be as efficient as the jvm :) make everything work and compile would be a miracle already :)
20:57 whiteknight I think the apostrophy in his name is causing problems with aloha
20:57 sorear .u `
20:57 Yuki`N I added myself to CREDITS but that didn't get pulled.
20:57 plobsing Yuki`N: aloha hates you apparently
20:58 Yuki`N Lol.
20:58 Yuki`N Oh well.
20:58 atrodo karma (Yuki`N)
20:58 aloha (Yuki`N) has karma of 0.
20:58 atrodo (Yuki`N)++
20:58 sorear karma N
20:58 aloha N has karma of 4.
20:58 atrodo karma (Yuki`N)
20:58 aloha (Yuki`N) has karma of 0.
20:58 whiteknight Yuki`N: We give people karma, and when you get to 10,000 we give you a free donut
20:58 sorear karma Yuki`N
20:58 aloha Yuki`N has karma of 0.
20:58 sorear karma N)
20:58 aloha N) has karma of 0.
20:58 atrodo Wow, aloha has no idea what's going on
20:58 whiteknight of course, donuts come in packs of 6, so you really need 60,000 to get anything
20:59 whiteknight and even then, it will be the wrong flavor
20:59 atrodo whiteknight> I think the donuts get more elaborate everytime you explain karma
20:59 whiteknight atrodo: so long as I am making this up, I may as well elaborate
20:59 atrodo So true...
21:00 Yuki`N xD
21:00 Yuki`N I see in the .pmc files there's a constant, PARROT_INTVAL_MIN.
21:00 Eclesia by the way, are there some kind of benchmarks of the parrot vm ?
21:00 Yuki`N Is there any way I can use that in PIR?
21:01 whiteknight One day when Parrot Foundation has enough money to afford donuts we can lower the threshold
21:01 whiteknight Eclesia: benchmarks right now are all bad. Performance is down. We're working on several projects to make performance better
21:01 plobsing Eclesia: http://isparrotfastyet.com/
21:01 plobsing pretty graphs
21:02 Eclesia no comparison with other vm ?
21:03 whiteknight Eclesia: no comparison. Parrot loses
21:03 Eclesia ^^
21:03 whiteknight like I said, performance is down right now
21:03 plobsing (1) make it work. (2) make it work right. (3) make it fast.
21:03 whiteknight I expect big improvements in the next 6 months if we can get some of our current projects in and done soon
21:03 plobsing we're just before or just after (2) depending on which subsystem you look at
21:03 NotFound Also, there is no other VM that can run pir.
21:03 Eclesia (2.5) make it work everywhere
21:04 plobsing there are different-language implementations of some of our benchmarks in examples/benchmarks
21:04 NotFound So no way to make fair comparaison.
21:05 whiteknight We've got new GC coming in the next few months. new MOP. new JIT probably by next winter
21:06 whiteknight an optimization framework is on it's way
21:06 Eclesia mop ?
21:06 whiteknight object model
21:06 * Eclesia is french, sorry if i don't understand everything
21:06 whiteknight MetaObject Protocol
21:06 whiteknight (that's okay. many people here are not native english speakers)
21:07 plobsing I'm a native english speaker and 6 months ago I thought a mop was something used with a pail.
21:07 whiteknight :)
21:08 rfw mornin' whiteknight
21:08 rfw could you approve this for me http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129191196680
21:08 whiteknight good morning rfw
21:08 whiteknight let me look
21:09 whiteknight rfw: done
21:09 rfw thanks
21:09 whiteknight good luck. Should be easy except for the Makefile stuff
21:09 rfw yeah
21:11 kendle left #parrot
21:11 sorear whiteknight: suppose I want to write a Parrot-based HLL sans PIR.  What APIs should I use?
21:12 Carter Hi, Notfound My name is Victor i am GCI Student Trying to translate your Readme file into spanish
21:12 NotFound Carter: poor guy ;)
21:13 Carter im sorry?
21:13 whiteknight sorear: Grab a bible and some Unicorn horn powder
21:13 whiteknight because I'm going to introduce you to the "I need a damn miracle" API
21:13 NotFound Carter: I've been ranting about bad translation all day.
21:14 Carter Thats what i am here to ask you about
21:14 sorear conveniently, NotFound is a native es speaker
21:14 whiteknight sorear: In reality, there really isn't any way to make PBC without PIR and IMCC right now
21:14 whiteknight at least, no reasonable way
21:15 dalek parrot: 113c002 | mikehh++ | MANIFEST:
21:15 dalek parrot: re-generate MANIFEST
21:15 dalek parrot: review: https://github.com/parrot/parrot/commit/113c002b3a
21:15 dalek parrot: 16bfa07 | mikehh++ | examples/pir/md5sum.pir:
21:15 dalek parrot: add Copyright line and coda at end
21:15 dalek parrot:
21:15 dalek parrot: some documentation is needed
21:15 dalek parrot: review: https://github.com/parrot/parrot/commit/16bfa07fef
21:15 sorear whiteknight: I don't want to make pbc, at least not just yet.  I just want something runnable.
21:15 whiteknight sorear: Parrot runs bytecode, so one way or another you need to give it bytecode
21:16 plobsing sorear: to run something you need a packfile. pbc -> packfile and packfile -> pbc are the *easy* parts
21:16 whiteknight IMCC turns PIR into bytecode, but we don't have a good general mechanism for doing it with any other tool
21:16 * Eclesia finally parrot 2.10 compiled and installed, nice and well documented readme ;)
21:16 whiteknight that's maybe an API that we need to start developing
21:16 NotFound Carter: feel free to ask, I'm not as bad as I sound sometimes.
21:17 whiteknight Eclesia: Awesome! That's the first step
21:17 Carter Alright I have one question about the Copyright part
21:17 plobsing urg. perk never got any leave-the-nest updates. building is a pain.
21:17 Carter I've always used "bajo los derechos del autor"
21:18 Eclesia whiteknight: only 2589 before having geotoolkit running lol
21:18 Carter Should i leave it as "Copyright"?
21:18 whiteknight Eclesia: :)
21:18 whiteknight plobsing: maybe you and I should get together sometime and lay out what interface we need for building PBC without PIR involved
21:18 NotFound Carter: that is the usual way, yes.
21:19 Carter then i will do that
21:19 whiteknight once we have an interface, and force people to use it, we can start changing the internals without breaking things
21:19 NotFound Carter: Parrot Bajo Los Derechos del Autor"
21:19 plobsing whiteknight: I'm not really the person who should be designing the interface. I'm not a compiler writer. Or a tools writer
21:19 NotFound ... is like "this sentence no verb"
21:19 whiteknight plobsing: but you're a hacker and you have good ideas about the system and you have a good vision for how it could be structured
21:19 Yuki`N Is there anything special I need to use the dynoplib?
21:20 Carter Understood
21:20 whiteknight plobsing: It's my job to make sure the users and the tools work nicely with the internals
21:20 Carter now is there any other major problems with the translation?
21:20 plobsing whiteknight: my only insight so far - external users should be *very* isolated from this system as it changes in impossible to predict ways.
21:20 whiteknight Yuki`N: probably a ".loadlib" to get it loaded
21:20 whiteknight plobsing: right. And I want to put up an isolation barrier
21:21 plobsing whiteknight: if you want to start a Packfile API push, I can get behind that. cotto++ has been pushing for much of the same.
21:22 mib_77hwi1 joined #parrot
21:22 sorear Carter: what is your relationship to the Spanish and English languages?
21:22 whiteknight plobsing: I think that's what we need. Packfiles are part of the core of Parrot, and that part of the core is rotten
21:22 Carter Well i am 15 I have lived in Chile for about 5 years
21:22 whiteknight we can't build bigger and better things on top of it if that part is crap
21:23 plobsing whiteknight: I prefer to think of it as "bad to the bone" ;)
21:23 Carter and i am currently living in Canada
21:23 NotFound Carter: several things should not be translated, like ICU and Storable
21:23 Eclesia quick question (since I'm not used to git yet)  i find all my usual commands from Mercurial on git (status,commit,push,pull,clone,rebase,diff...). anything special things I should be aware of ?
21:23 whiteknight plobsing: Like I said, just about every other project I want to see tackled in the medium to long term relates back to PackFiles
21:24 whiteknight so as the lowest common denominator, maybe that's where I should be focusing some of my effort.
21:24 Carter Yes also i want to sure about branch?
21:24 whiteknight or, once the embed_api2 branch merges, all of my effort
21:24 Carter wasnt*
21:25 * whiteknight has to go. Talk to everybody later
21:25 cotto_work whiteknight: +1 to what plobsing said.
21:25 whiteknight left #parrot
21:25 cotto_work a push would probably get it done pretty quickly
21:25 cotto_work bacek: ping
21:26 mib_77hwi1 dfjk
21:26 mib_77hwi1 left #parrot
21:26 atrodo interesting...
21:26 dukeleto Carter: hello
21:26 dukeleto Carter: are you a GCI student? What are you working on?
21:27 Carter I am working for The README translation to spanish
21:27 dukeleto Carter: awesome!
21:27 dukeleto Carter: did you send one pull request already? is that you on github?
21:27 Carter Yes I did that
21:28 Carter Cotto is my Mentor
21:28 dukeleto Carter: the spanish readme should be in README.espanol, not in the README file
21:28 Carter well thats one of the problems
21:28 Carter i am not familiar with Github
21:28 dukeleto Carter: and ICU should not be translated
21:28 Carter i spent half an hour trying to figure out the pull request
21:28 dukeleto Carter: that is fine. GCI is all about you learning about new stuff :)
21:28 mib_m1lywe joined #parrot
21:28 Carter thats true thanks
21:29 dukeleto Carter: do pull requests make sense to you now? They are a valuable thing to understand.
21:29 plobsing Eclesia: mercurial and git are very similar. You can even use hg as a frontend to git (http://hg-git.github.com/).
21:29 Carter yes
21:29 NotFound Now that I look at it, I'm not sure the english version is very good in some parts. "extracts configuration from the running perl5 program". running?
21:29 Carter but dont know how to change README to something else
21:29 plobsing Eclesia: I'm not aware of all the differences. I suspect there are some and that they are subtle.
21:30 atrodo NotFound> Correct but not exactly clear
21:31 atrodo It's saying the Configure.pl uses the perl that it's running under to probe for some values
21:31 bluescreen atrodo, been checking out lorito's github it looks promising
21:32 atrodo bluescreen> Thanks.
21:32 dukeleto Carter: cp README README.espanol
21:32 dukeleto Carter: git add README.espanol; git commit -m "my commit message"
21:32 bluescreen atrodo, are you going to keep the inline ops ? or they will become functions ?
21:32 dukeleto Carter: do that from a fresh version of master on parrot
21:33 atrodo bluescreen> Probably not functions, but will probably extract them into a format that will make them easier to do more with
21:33 Carter dukeleto: OK, i should probably install git first
21:34 atrodo Carter> Were you using github to edit the files?
21:34 dukeleto Carter: you can also just work on your translation, and send us the file
21:34 dukeleto Carter: i want you to learn about git, but that might slow you down too much. Your task doesn't actually need to use git.
21:34 mib_m1lywe He's got a week right?
21:35 dukeleto Carter: you can paste a copy of your translated README on http://gist.github.com
21:35 Carter ooh ok
21:35 dukeleto mib_m1lywe: i am not sure how much time he has left. But he can do more tasks if we just concentrate on translation right now, and not learning git
21:35 Carter got it
21:35 Carter Title README.es?
21:36 dukeleto Carter: sure, whatever title you want
21:36 dukeleto Carter: title isn't going to be used when i commit it
21:36 Carter oh ok
21:38 dukeleto Carter: make sure you don't translate acronyms (like ICU)
21:38 dukeleto Carter: they should stay the same
21:38 Carter alright
21:39 dukeleto Carter: and make sure the commands that you translated actually work. Such as "apt-get instala git-core". Does that actually work?
21:39 dukeleto Carter: which OS are you using?
21:39 dukeleto Carter: for now, just leave all the commands the same in the document
21:39 Carter Im on Windows
21:39 dukeleto Carter: ok. good to know.
21:40 dukeleto Carter: make sure to spell check your document with a spanish spellchecker, please.
21:40 Carter i change "apt-get instala git-core" back to the original version
21:40 dukeleto Carter: that is good.
21:40 dukeleto Carter: the spellcheck won't know any of the technical words, and you can skip over those. Just make sure you don't have any spanish spelling errors
21:41 Carter yes i also didnt understand this "You also need Perl 5.8.4 or newer, and Storable 2.12 or newer 27 for running various configure and build scripts."
21:42 NotFound Carter: "Storable" is a perl module, don't translate its name.
21:42 sorear 5.8.4 and 2.12 are version numbers
21:42 Carter "for running various configure and build scripts."
21:44 NotFound Here you enter deep waters. Some people found translation of "script" to "guión" perfectly goot. Some others think it sounds ridiculous.
21:44 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1585) fulltest) at 16bfa07 - Ubuntu 10.10 i386 (g++-4.5)
21:45 Carter I wrote "para el funcionamiento de diversos configura y crea secuencias de comandos"
21:47 Carter left #parrot
21:48 lucian left #parrot
21:50 M_o_C joined #parrot
21:50 cotto_work http://antimatter15.com/mi​sc/rotatedgooglecss3.html
21:51 mib_ip6b69 joined #parrot
21:53 mtk left #parrot
21:55 mib_ip6b69 left #parrot
21:55 Coke are we sure that the MULTI is_equal in string.pmc was extraneous?
21:56 Pitoco joined #parrot
21:58 Coke (I'd like to verify it doesn't break a HLL before mergeback.)
21:58 dukeleto Coke: i like that idea.
21:58 dukeleto Coke: i think I will apply the patch without that deletion.
21:59 cotto_work dukeleto: go file a ticket for deprecations as data
22:00 hercynium left #parrot
22:00 dukeleto cotto_work: Yes, sir.
22:00 cotto_work That was a great idea from last nice.
22:00 cotto_work night
22:00 Pitoco left #parrot
22:01 dukeleto cotto_work: yes, i have been thinking about it for a while and discussed it with whiteknight in here a few days ago
22:01 Carter joined #parrot
22:02 Carter is now known as pitoco
22:04 dukeleto cotto_work: done
22:04 pitoco Ok, heres my updated README.es
22:04 pitoco https://gist.github.com/736890
22:05 dukeleto Coke: does this make you happy? http://trac.parrot.org/parrot/ticket/1888
22:06 dukeleto pitoco: awesome. set your melange ticket to "submitted" so i can approve the task
22:07 NotFound pitoco: there are several lacks of concordance. You are using "usted", then you should always use third person verbs.
22:08 pitoco True
22:08 dukeleto pitoco: please fix that in your gist :) You can edit your gist
22:08 dukeleto NotFound++
22:08 NotFound "porspuesto" -> "por supuesto"
22:08 sorear there's something slightly funny about watching two Spanish speakers discuss Spanish grammar in English
22:10 NotFound sorear: Ils sont fous, ces espagnoles.
22:11 dalek TT #1888 created by dukeleto++: Deprecations as data
22:11 dalek TT #1888: http://trac.parrot.org/parrot/ticket/1888
22:12 sorear my French is *much* worse than my Spanish
22:12 pitoco my french is ok
22:13 NotFound sorear: is a saying from Obelix.
22:13 pitoco Asterix and Obelix?
22:13 NotFound Yes
22:13 NotFound Están locos estos romanos.
22:14 pitoco That was my favourite comic book when i was in elementary school
22:14 pitoco should i stick to Usted or Tu?
22:15 pitoco NotFound: should i stick to Usted or Tu?
22:16 NotFound pitoco: this is detable. I usually avoid the decision by using impersonal forms.
22:17 pitoco NotFound: like "Necesita un compilador C, enlazador, y por supuesto, un programa."?
22:18 NotFound pitoco: I'll say: "Se necesita un compilador C, enlazador, y por supuesto, un programa."
22:20 NotFound "compilador de C"
22:21 pitoco NotFound:  seems like i will have to keep everything a "Tu"
22:21 M_o_C left #parrot
22:21 pitoco as*
22:22 NotFound pitoco: fine for me
22:26 rfw argh, did i just commit something as root
22:26 rfw goddammit
22:27 Yuki`N lol.
22:28 mib_m1lywe rfw: programming as root?
22:28 rfw mib_m1lywe: yeah i was just being lazy
22:30 mib_m1lywe left #parrot
22:35 rfw ignore that pull request
22:37 sorear hmm, so legiitimate users sometimes use mibbit?  good to know
22:37 Yuki`N Can someone accept my claim for http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129197439537
22:40 pitoco left #parrot
22:43 hercynium joined #parrot
22:46 fperrad left #parrot
22:49 Carter joined #parrot
22:58 Eclesia question about PIR : This can be int (for I registers), float (for N registers), string (for S registers)
22:58 Yuki`N What do you mean?
22:58 Eclesia if i use float, is it a 32bit or 64bit ?
22:58 Eclesia float or double
22:59 Yuki`N Umm.
22:59 Eclesia I'm used to java where there is float a double, so which one is it ?
23:00 sorear N registers are NUMVAL
23:00 Eclesia and*
23:00 Eclesia could you explain
23:00 sorear which can be whatever the person configuring Parrot wants it to be
23:00 sorear it'll usually be the same as a Java double
23:00 sorear but not alwyas
23:01 Eclesia so when I run a pir file, i can choose to work in single precious or double precision but not have some values in 32 and others in 64 ?
23:02 Andy left #parrot
23:02 Eclesia I mean at the same time
23:04 TiMBuS_ joined #parrot
23:05 sorear No
23:05 plobsing Eclesia: Parrot (mostly) works with configured-once-at-compile-time C datatypes including INTVAL and NUMVAL. These usually default to the C compiler's 'long' and 'double'.
23:05 sorear When you work in PIR, you don't get to choose precision
23:05 sorear You're at the mercy of whoever installed Parrot
23:05 sorear You have one precision to work with
23:06 TiMBuS left #parrot
23:06 sorear Also, you seem to be assuming that all computers have exactly two floating point types, a 32 bit one and a 64 bit one.  This is wrong.
23:07 Eclesia hm, since my project in a mapping library, we often switch between types, like float <> double or sometime BigDecimal. working with float at the earth scale is just not precise enough.
23:08 plobsing we have BigNum
23:08 plobsing I recall we had decnums at one point too
23:08 cotto_work plobsing: that was split out into a separate project
23:08 sorear Eclesia: only a fool would configure NUMVAL with the precision of a Java float
23:08 cotto_work still exists, might still build
23:09 cotto_work if dukeleto++ gets his way, we'll have a way to know for sure
23:09 Eclesia sorear: well I never coded in low level (exept a few times for microshop in C) . so I guess i the worse case 32 or 64bit calculations can be emulated by using more cpu cycles
23:09 plobsing cotto_work: I'm already busy reviving an old project. don't pile on more!
23:10 sorear Eclesia: you are speaking very imprecisely
23:10 sorear Parrot is designed to be a lot more portable than Java
23:10 Eclesia sorry ... I lack precise vocabulary :)
23:10 Yuki`N Could a mentor kindly accept my claim? http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129197439537
23:11 sorear Most current Parrot installs use the 387's 64 bit float format for NUMVAL
23:12 sorear which is identical to a Java double, and also the fastest type available on the 387
23:12 plobsing Eclesia: the only reason you couldn't use a double in stead of a float is if you *wanted* the rounding errors.
23:12 cotto_work Yuki`N: yes
23:12 cotto_work er, done
23:12 sorear the only reason to use the 387's 32 bit format is for memory efficiency
23:13 Yuki`N Ok well, I added a link to the pull request as the work submission.
23:13 Eclesia plobsing: you forget about 3D rendering, when you work with opengl. float or double makes a difference
23:14 plobsing sorear: true, but if you have that many floats, $N-regs are the wrong way to store them
23:14 Coke dukeleto: (1888) not really, but if it makes you happy, that's fine. ;)
23:14 sorear plobsing: it's worth noting that the 387 itself only has 80-bit registers
23:14 sorear the only way to do 64-bit math is to downconvert between operatiions
23:14 sorear Directly binding Parrot to OpenGL is going to suck big time anyway
23:14 plobsing which java requires IIRC (silly spec)
23:15 sorear wasn't there some silly strictfp keyword thing?
23:15 * sorear wants to see -mfp=sse become the standard ABI within the decade
23:16 Eclesia what is IIRC ?
23:16 sorear If I Recall Correctly
23:16 Eclesia thx
23:17 dalek nqp-rx/nom: 361fef3 | cotto++ | src/pmc/ (2 files):
23:17 dalek nqp-rx/nom: rename STable.pmc to stable.pmc to avoid making case-sensitive OSs sad
23:17 dalek nqp-rx/nom: review: https://github.com/perl6/nqp-rx/commit/361fef33ae
23:18 plobsing iirc => if I recall correctly (in IRC) :p
23:24 bluescreen left #parrot
23:29 Matt221 joined #parrot
23:41 Yuki`N http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129193205977 the task name says Iterator, the task description says Complex.

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

Parrot | source cross referenced