Camelia, the Perl 6 bug

IRC log for #parrot, 2011-06-19

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 daniel-s left #parrot
00:13 whiteknight joined #parrot
00:14 whiteknight good afternoon, #parrot
00:16 soh_cah_toa whiteknight: you're the first one to break the silence :)
00:16 whiteknight oh, not a busy day today?
00:17 sorear hello whiteknight.
00:17 whiteknight hello sorear
00:17 soh_cah_toa sorear: hey, you're here too :)
00:17 cotto ~~
00:17 soh_cah_toa cotto: and you! hey
00:25 davidfetter joined #parrot
00:27 daniel-s joined #parrot
00:29 daniel-s left #parrot
00:41 whiteknight left #parrot
00:42 Coke
00:45 whiteknight joined #parrot
00:48 davidfetter left #parrot
00:56 dalek TT #1984 closed by cotto++: Remove clone_pmc VTABLE slot
00:56 dalek TT #1984: http://trac.parrot.org/parrot/ticket/1984
00:57 dalek parrot/soh-cah-toa/hbdb: 377a93d | soh_cah_toa++ | src/hbdb.c:
00:57 dalek parrot/soh-cah-toa/hbdb: Renamed hbdb_cmd_list to hbdb_cmd_table_t and hbdb_cmd to hbdb_cmd_t as this is a little more accurate
00:57 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/377a93d98f
00:57 dalek parrot/soh-cah-toa/hbdb: f53a710 | soh_cah_toa++ | / (2 files):
00:57 dalek parrot/soh-cah-toa/hbdb: Defined run_command() and finished implementation of parse_command(). Almost recognizes commands but segfaults
00:57 dalek parrot/soh-cah-toa/hbdb: review: https://github.com/parrot/parrot/commit/f53a710b55
01:03 cotto soh_cah_toa, I recommend running the build with -s.  That will prevent make from printing what the commands it's running and make warnings much easier to find.
01:04 whiteknight left #parrot
01:05 soh_cah_toa cotto: ah, ok
01:06 soh_cah_toa cotto: i'm so so so close to command recognition. it's segfaulting though. think you could help me find out why?
01:06 soh_cah_toa i'd rather right in my blog "yay, it works!" rather than "ugh...so close" ;)
01:06 cotto cstrings?
01:06 whiteknight joined #parrot
01:06 soh_cah_toa cotto: yeah, i wanted to get this working before replacing everything w/ STRING's
01:07 cotto soh_cah_toa, you may find that it's less work to start using STRINGs now
01:09 soh_cah_toa i guess i'll do it now. that could be why. i just hate wasting time guessing/looking for the right function or type to do something w/ STRING's when i already know how to do it w/ cstring's
01:10 cotto perldoc src/string/api.c
01:10 soh_cah_toa yeah, i'm looking at it now
01:11 soh_cah_toa well, let me write my blog first b/c this will probably take quite a while
01:20 whiteknight (blog first)++
01:20 whiteknight I'm *way* behind on my blogging. I need to get back on that
01:23 preflex left #parrot
01:27 preflex joined #parrot
01:32 cotto whiteknight, in your mind, what's the most valuable thing about Parrot?
01:59 dalek website: bubaflub++ | Parrot-GMP:  More Tests
01:59 dalek website: http://www.parrot.org/cont​ent/parrot-gmp-more-tests
02:04 dalek website: soh_cah_toa++ | It's So Close, I Can Almost Smell It
02:04 dalek website: http://www.parrot.org/content/it​s-so-close-i-can-almost-smell-it
02:08 cotto soh_cah_toa, to clarify, I don't think your segfaults are because of cstrings.  It's quite possible to use them correctly.  What I mean is that segfaults are harder to cause when you're using Parrot's string system.
02:08 cotto correctly
02:09 whiteknight cotto: that's a really good question
02:09 whiteknight I'll have to ponder
02:16 cotto soh_cah_toa, make sure to read the documentation on IPC::Open3 carefully.  There are some gotchas you need to be aware of that it'll tell you about.
02:16 soh_cah_toa cotto: ok
02:18 cotto Getting started testing needs to be your next priority after the STRING conversion.
02:18 soh_cah_toa yeah
02:18 cotto (and after getting command parsing working)
02:18 soh_cah_toa cotto: so what do you think i should do first? convert char * to STRING* or try to get rid of this segfault?
02:19 cotto I think that converting to STRING* would be a more productive use of your time.  It's not too useful to fix something that you'll be rewriting the next day.
02:20 soh_cah_toa alright
02:23 cotto I'll be around this evening but not much tomorrow.
02:23 soh_cah_toa ok
02:27 soh_cah_toa is a STRING equal to a char *? not literally but what i means is if i have char *, do i replace it w/ just STRING or STRING *?
02:28 cotto STRING*
02:28 soh_cah_toa ok, that's what i thought
02:28 cotto The API takes pointers to STRINGs.
02:29 soh_cah_toa alright
02:29 rurban_ joined #parrot
02:32 rurban left #parrot
02:32 rurban_ is now known as rurban
02:36 soh_cah_toa looking through the string api reminded me of something...what's a PObj? what's it used for?
02:36 whiteknight soh_cah_toa: it's mostly a holdover
02:37 soh_cah_toa whiteknight: holdover?
02:37 whiteknight there are no PObjs used in the system. However, PMC and STRING structs contain the first few ields the same
02:37 whiteknight fields
02:37 whiteknight so if I have a PMC *pmc, I can cast it to PObj* and treat STRING and PMC the same
02:37 whiteknight the flags field is common
02:37 whiteknight so we can differentiate between types with a flag
02:38 * soh_cah_toa thinks about this
02:38 whiteknight that isomorphism isn't as useful as it once was. We used to have other types of PObj in the system
02:38 whiteknight you do any C++?
02:38 soh_cah_toa bleh...school :(
02:38 whiteknight it's basically like saying STRING and PMC are subclasses of PObj
02:39 whiteknight but, in the manual, crappy, C way of doing that
02:39 whiteknight basically, unless you are going to be playing with the GC, just ignore it
02:39 soh_cah_toa hmmm...is there any advantage to using it?
02:40 soh_cah_toa i'm not interested in using it or anything. just curious
02:40 whiteknight yes. We can write one set of functions for dealing with STRING and PMC in the GC
02:40 whiteknight otherwise, we would need two sets of functions
02:40 soh_cah_toa ah, right
02:40 whiteknight all headers look like PObj, so we can cast them all to PObj and treat them the same
02:41 soh_cah_toa that sounds dangerous
02:41 whiteknight it is dangerous
02:41 whiteknight that's why it only happens in the GC, and with adult supervision
02:42 soh_cah_toa yeah, i don't see it used very often but every once in a while it'll pop up
02:45 whiteknight there's a reason why we don't do it often
02:45 whiteknight it has limited usefulness
02:45 whiteknight it only really matters inside the GC
02:46 soh_cah_toa ok
02:46 whiteknight no other subsystem is so stupid as to mix and match PMC and STRING headers
02:48 whiteknight incoming push
02:48 dalek Rosella: b5e81dd | Whiteknight++ | / (4 files):
02:48 dalek Rosella: Add in logic to automatically create dirs when building files, so we don't need to keep dummy dirs around
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/b5e81dd3b3
02:48 dalek Rosella: 62a912e | Whiteknight++ | src/winxed/Distutils.winxed:
02:48 dalek Rosella: Small cleanups and docs for distutils
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/62a912ed49
02:48 dalek Rosella: 752d36a | Whiteknight++ | src/winxed/Distutils.winxed:
02:48 dalek Rosella: more distutils docs
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/752d36a3b3
02:48 dalek Rosella: 0475c1f | Whiteknight++ | src/test/ (2 files):
02:48 dalek Rosella: +docs for SuiteFactory.Vector
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/0475c1f186
02:48 dalek Rosella: f7cca04 | Whiteknight++ | src/test/Asserter.winxed:
02:48 dalek Rosella: Add exists_keyed_str and not_exists_keyed_str assertions, for testing hash keys
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/f7cca04c6e
02:48 dalek Rosella: 7d69d79 | Whiteknight++ | t/test/SuiteFactory/Vector.t:
02:48 dalek Rosella: Add some tests for SuiteFactory.Vector
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/7d69d79fa3
02:48 dalek Rosella: 87dcf09 | Whiteknight++ | t/test/Assertions.t:
02:48 dalek Rosella: Add some tests for the new exists_keyed_str assertions
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/87dcf09c9a
02:48 dalek Rosella: 4117d3a | Whiteknight++ | / (3 files):
02:48 dalek Rosella: Cleanup Test.Suite. Break functions into public, protected, and private sections, with comments. Update tests
02:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/4117d3a57a
02:52 soh_cah_toa i can't do direct comparisons w/ STRING's right? for instance, if foo is a STRING *, i can't do "if (foo != '\0')"?
02:53 cotto You can, but it won't do what you're hoping it'll do.
02:54 soh_cah_toa i just found Parrot_str_not_equal() anyway
02:54 dalek Rosella: 68ac304 | Whiteknight++ | s (3 files):
02:54 dalek Rosella: Refactor out logic for autocreating paths to a function make_path_for. Use that in setup.winxed to create a home for the generated version file.
02:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/68ac3044c2
02:54 whiteknight left #parrot
02:55 cotto or STRING_length()
02:56 soh_cah_toa but what if i want to compare a STRING to a string literal? do i have to replace the second arg to Parrot_str_not_equal() w/ Parrot_str_new()?
02:57 soh_cah_toa b/c i'm not seeing a Parrot_str_cmp(STRING *foo, const char *bar)
02:57 cotto What are you trying to do?
02:58 cotto right.  You can't directly compare STRING* and char*.  You can use CONST_STRING("foo") though
02:59 soh_cah_toa doesn't that make a .str file i have to include though or something?
02:59 cotto (or Parrot_str_new_constant for external code)
03:00 cotto yes
03:01 soh_cah_toa what i'm trying to do is this:
03:01 soh_cah_toa i have "if (hbdb->current_command != '\0')". current_command used to be a char * but now it's a STRING *. i want to make this STRING-appropriate
03:01 cotto If you want to use CONST_STRING, you'll need to do a little fiddling with the build
03:01 cotto Are you testing for a non-empty command?
03:01 cotto STRING_length will work for that
03:01 soh_cah_toa yeah, if the user entered nothing,use the last command
03:01 soh_cah_toa ok
03:03 soh_cah_toa oh, i found Parrot_str_length(). less ugly than STRING_length ;)
03:03 soh_cah_toa i'll use that
03:04 bubaflub left #parrot
03:28 contingencyplan left #parrot
03:35 zostay joined #parrot
03:35 zostay left #parrot
03:37 soh_cah_toa cotto: i've got a bit of a problem. my command-line parsing logic relies heavily on pointer arithmetic and i also use isspace() which i don't see a STRING equivalent
03:38 soh_cah_toa is it ok if i use STRING *foo; foo->strstart++ and such?
03:39 cotto soh_cah_toa, definitely don't use that except for debugging.  It breaks encapsulation and there's no guarantee that it'll continue to exist.
03:40 soh_cah_toa i thought so
03:40 cotto let me look
03:40 soh_cah_toa sure
03:41 soh_cah_toa it's the parse_command() function around line 419 in src/hbdb.c
03:42 cotto One way to do it would be to use a hash to map strings to function pointers
03:42 cotto I think you're working too hard.
03:42 soh_cah_toa i'm not too familiar w/ hashes though
03:42 soh_cah_toa in c, that is
03:43 cotto Parrot already provides what you'll need.
03:47 cotto There's no existing function to do that, but you'd just need to call Parrot_hash_create(interp, enum_type_STRING, Hash_key_type_ptr);
03:47 cotto er, the opposite of that
03:48 cotto Parrot_hash_create(interp, enum_type_ptr, Hash_key_type_STRING);
03:49 soh_cah_toa how do i iterate through a hash though? is there some docs about hashes i can look at?
03:49 cotto That way you just stuff a bunch of STRINGs and C function pointers into the hash.  When you want to run a command, you check if the command maps to anything and run it if so.
03:50 cotto just a sec
03:51 cotto The addrregistry is a pretty minimal wrapper around a pair of hashes.
03:51 cotto (it's used to store the GC root set, in case you're curious)
03:52 soh_cah_toa this is gonna set me back a bit though. right now, i'm just a segfault away from command recognition. if i do this, i have to completely redesign a lot of logic and hbdb_cmd_table_t and hbdb_cmd_t
03:53 cotto It'll be a lot simpler.
03:53 cotto I don't want you to get too frustrated though.
03:56 soh_cah_toa i have more than just a string to match to a function pointer too. there's the help message and the short name in addition to the command string and function pointer. how am i gonna organize that?
03:57 cotto You can have more than one thing map to a single function pointer.
03:57 cotto and the help message is just another command
03:57 soh_cah_toa no, the help message for the command
03:58 soh_cah_toa there's "help" and "help break"
03:58 soh_cah_toa "help" is another function" "help break" is just a string i have associated w/ the command
03:59 soh_cah_toa s/function/command
03:59 cotto You'll need commands to be smart enough to process arguments.  If you also store the help text in a hash, the "help" command only has to do a little extra work to figure out what to display.
03:59 soh_cah_toa hmm...ok
04:00 cotto Does that make sense?
04:00 cotto It's essentially using a dispatch table.
04:00 soh_cah_toa yeah, but...
04:00 cotto but?
04:01 soh_cah_toa i don't know. i'm unsure
04:01 cotto Do you understand how dispatch tables work?
04:01 soh_cah_toa the basics. yeah
04:01 cotto They're noisy in C, so you should get the concept solid before you try to implement it.
04:04 soh_cah_toa i'm just worried that i've come so far to try and make up for lost time and i'm so close to where i want to be and now i have to back track and do my "make up work" again. i don't want to have to re-do my re-do
04:05 cotto You can plow ahead.  Refactoring will be easier once you have tests anyway.
04:06 soh_cah_toa for now, i think i'll just convert my STRING's to c-strings in parse_command() and then convert then back. at least i hope that will work
04:07 cotto ok
04:44 zostay joined #parrot
04:47 jsut_ joined #parrot
04:51 jsut left #parrot
05:03 soh_cah_toa left #parrot
05:06 preflex left #parrot
05:09 preflex joined #parrot
05:30 cotto dukeleto, ping
06:24 theory left #parrot
07:03 dalek parrot/leto/embed_grant: 46a1347 | dukeleto++ | t/src/embed/api.t:
07:03 dalek parrot/leto/embed_grant: Add coverage to Parrot_api_flag
07:03 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/46a13474ba
07:09 fperrad joined #parrot
07:36 cjh left #parrot
07:36 cjh joined #parrot
07:38 dalek parrot/leto/embed_grant: 14a15f1 | dukeleto++ | t/src/embed/api.t:
07:38 dalek parrot/leto/embed_grant: Add test coverage for Parrot_api_unwrap_pointer
07:38 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/14a15f12f4
07:47 dukeleto cotto: pong
07:50 cotto dukeleto, privmsg reply
07:59 preflex left #parrot
08:01 preflex joined #parrot
08:03 mikehh left #parrot
08:03 cosimo joined #parrot
08:17 dalek parrot/m0-prototype: 8091bba | cotto++ | t/m0/integration/m0_poke_caller.m0:
08:17 dalek parrot/m0-prototype: more comments in poke_caller
08:17 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/8091bbacab
08:17 dalek parrot/m0-prototype: d4f4d9a | cotto++ | src/m0/perl5/m0_assembler.pl:
08:17 dalek parrot/m0-prototype: add ARGV and ARGC to assembler, simplify register parsing
08:17 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d4f4d9a35f
08:17 dalek parrot/m0-prototype: 6d4fd21 | cotto++ | t/m0/integration/m0_poke_caller.m0:
08:17 dalek parrot/m0-prototype: fix typo in poke_caller
08:18 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/6d4fd21650
08:18 dalek parrot/m0-prototype: c3af1b2 | cotto++ | / (4 files):
08:18 dalek parrot/m0-prototype: add argv support and an incomplete test
08:18 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/c3af1b2c98
08:18 dalek parrot/m0-prototype: d7a80e5 | cotto++ | t/m0/m0_assembler.t:
08:18 dalek parrot/m0-prototype: clean up some failing tests
08:18 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d7a80e55e2
08:18 dalek parrot/m0-prototype: 54cd050 | cotto++ | t/m0/ (33 files):
08:18 dalek parrot/m0-prototype: add a whole mess of vim codas
08:18 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/54cd0507f7
08:18 * cotto sleeps
08:19 cosimo left #parrot
09:02 mikehh joined #parrot
10:02 dalek parrot/leto/embed_grant: 2266398 | dukeleto++ | t/src/embed/api.t:
10:02 dalek parrot/leto/embed_grant: Add coverage to Parrot_api_flag
10:02 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/2266398b17
10:02 dalek parrot/leto/embed_grant: 7c4b6f8 | dukeleto++ | t/src/embed/api.t:
10:02 dalek parrot/leto/embed_grant: Add a test for Parrot_api_reset_call_signature
10:02 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/7c4b6f8971
10:02 dalek parrot/leto/embed_grant: c9c5a00 | dukeleto++ | / (2 files):
10:02 dalek parrot/leto/embed_grant: Decorate some embed api functions and rerun headerizer
10:02 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/c9c5a00e65
10:02 dalek parrot/leto/embed_grant: 1d956c5 | dukeleto++ | t/src/embed/api.t:
10:02 dalek parrot/leto/embed_grant: Fix type conversion compile error
10:02 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/1d956c5901
10:02 dalek parrot/leto/embed_grant: 1e48904 | dukeleto++ | t/src/embed/api.t:
10:02 dalek parrot/leto/embed_grant: Add test coverage for Parrot_api_get_exception_backtrace
10:02 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/1e48904b4f
10:30 rurban_ joined #parrot
10:34 rurban left #parrot
10:34 rurban_ is now known as rurban
10:36 whiteknight joined #parrot
10:37 plobsing left #parrot
10:53 contingencyplan joined #parrot
11:09 whiteknight good morning, #parrot
11:32 mj41 joined #parrot
11:44 mj41 left #parrot
12:01 lucian joined #parrot
12:07 lucian hm, i'm trying to figure out if a guy is trying to scam me
12:37 ambs joined #parrot
12:43 contingencyplan left #parrot
13:01 redicaps joined #parrot
13:13 cotto msg dukeleto I'd like to pick your brain about what calculating the hash of a string (or any string processing) should look like in M0.
13:13 aloha OK. I'll deliver the message.
13:15 JimmyZ joined #parrot
13:18 mj41 joined #parrot
13:35 redicaps left #parrot
14:11 daniel-s joined #parrot
14:11 daniel-s hello
14:11 daniel-s is there an easy way to print an integer as a binary value
14:11 daniel-s like $I0 = 3
14:11 daniel-s print $I0
14:12 daniel-s would give you 0b10
14:12 moritz printf
14:12 moritz nqp: pir::printf('%b', 3)
14:12 p6eval nqp: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P100')␤  in file '(file unknown)' line 36␤error:imcc:syntax error ... somewhere␤ in file '(file unknown)' line 103␤syntax error ... somewhere␤»
14:12 moritz hm
14:13 moritz but I'm sure some form of printf exists, and can be used for that
14:14 dodathome joined #parrot
14:19 daniel-s nqp pir::printf('%b', 3)
14:19 daniel-s nqp pir::printf(%b, 3)
14:28 moritz nqp: pir::print(pir::sprintf('%b', 3))
14:28 p6eval nqp: OUTPUT«error:imcc:The opcode 'sprintf_p_p' (sprintf<2>) was not found. Check the type and number of the arguments␤ in file '(file unknown)' line 36␤»
14:29 moritz nqp: pir::print(pir::sprintf__SSP('%b', 3))
14:29 p6eval nqp: OUTPUT«get_pmc_keyed() not implemented in class 'Integer'␤current instr.: '_block1000' pc 0 ((file unknown):1)␤»
14:29 moritz nqp: pir::print(pir::sprintf__SSP('%b', "3"))
14:29 p6eval nqp: OUTPUT«11»
14:29 moritz nqp: pir::print(pir::sprintf__SSP('%b', "5"))
14:29 p6eval nqp: OUTPUT«101»
14:46 mj41 left #parrot
14:47 whiteknight nqp: pir::say(pir::sprintf__SSP("%b", [3]))
14:47 p6eval nqp: OUTPUT«11␤»
14:52 moritz nqp: pir::print(pir::sprintf__SSP('%b-%X', [3, 3]))
14:52 p6eval nqp: OUTPUT«11-3»
14:55 lucian_ joined #parrot
15:00 bubaflub joined #parrot
15:23 ambs left #parrot
15:24 daniel-s left #parrot
15:43 klavs joined #parrot
15:49 klavs left #parrot
15:55 dalek Rosella: a4c3a05 | Whiteknight++ | t/winxed_test/Vector.t:
15:55 dalek Rosella: Add a quick example file using test_vector from winxed
15:56 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/a4c3a05df9
15:56 dalek Rosella/event_queues: fb67e32 | Whiteknight++ | src/event/ (2 files):
15:56 dalek Rosella/event_queues: start reworking event to use queues
15:56 dalek Rosella/event_queues: review: https://github.com/Whiteknig​ht/Rosella/commit/fb67e32e8c
15:56 dalek Rosella/event_queues: 7c59170 | Whiteknight++ | s (4 files):
15:56 dalek Rosella/event_queues: First stab at Event library refactor. Break subscriber management out into a new Queue class.
15:56 dalek Rosella/event_queues: review: https://github.com/Whiteknig​ht/Rosella/commit/7c59170206
15:56 whiteknight left #parrot
15:58 whiteknight joined #parrot
15:59 bubaflub left #parrot
16:08 lucian_ left #parrot
16:22 JimmyZ left #parrot
16:24 JimmyZ joined #parrot
16:38 JimmyZ left #parrot
16:39 JimmyZ joined #parrot
16:46 JimmyZ left #parrot
16:47 JimmyZ joined #parrot
17:09 Eclesia joined #parrot
17:09 Eclesia hi
17:11 Eclesia I have a question about pir. how can loop on all files in a folder ?
17:18 whiteknight Eclesia: good question
17:18 whiteknight Eclesia: There is an "OS" PMC, which you need to load. it is shipped with parrot but not used by default
17:18 whiteknight it has a method for reading directory contents
17:19 dalek Rosella/event_queues: b1a28b0 | Whiteknight++ | src/event/ (3 files):
17:19 dalek Rosella/event_queues: Several fixes so we can fire off basic events again
17:19 dalek Rosella/event_queues: review: https://github.com/Whiteknig​ht/Rosella/commit/b1a28b099e
17:19 dalek Rosella/event_queues: e8e2dc7 | Whiteknight++ | src/event/ (2 files):
17:19 dalek Rosella/event_queues: Add some more functionality for working with queues: Trigger events for particular queues, add/remove queues, enable/disable queues, set queue accept funcs
17:19 dalek Rosella/event_queues: review: https://github.com/Whiteknig​ht/Rosella/commit/e8e2dc7c2e
17:19 whiteknight os.readdir()
17:19 whiteknight er, os.readdir(<path>)
17:20 Eclesia whiteknight: to load this os pmc, in which library is it ?
17:20 whiteknight let me look at what the incantation is
17:21 Eclesia thanks
17:21 Eclesia by the way, Is there some kind of doc of all libraries with availables objects and methods ?
17:22 whiteknight $P0 = loadlib "os"
17:22 whiteknight $P1 = new 'OS'
17:22 whiteknight $P2 = $P1.readdir(<path>)
17:23 whiteknight Eclesia: not so much, no. Nothing unified and comprehensive
17:23 whiteknight Eclesia: What are you writing?
17:23 Eclesia a syntaxe parser
17:24 whiteknight And you're writing it in PIR?
17:24 Eclesia (a bit more then that but actually)
17:24 Eclesia whiteknight: I explored and tryed the tools available and also how winxed does it
17:24 Eclesia but I don't really like any of those solutions
17:25 whiteknight I've written a sort of "standard library" for Parrot called Rosella. It has libraries for working with things like files and directories in a much nicer way than the OS PMC does
17:25 whiteknight and it's better documented
17:26 Eclesia whiteknight: nice. it's not another syntaxe I hope ?
17:26 moritz what does "syntaxe" mean?
17:26 whiteknight No. I wrote the library in winxed, but it's usable from NQP, Winxed, PIR, or any other language
17:27 Eclesia whiteknight: you have a link to this rosella ?
17:28 whiteknight Here's a link to the FileSystem documentation: http://whiteknight.github.com/Ro​sella/libraries/filesystem.html
17:28 Eclesia moritz: I came from the java world,  Pir, pseudo-perl, c++(winxed), makefiles ... plenty to learn
17:36 whiteknight I'm signing off for most of the rest of the afternoon. Eclesia: If you have any questions about Rosella, I'm always happy to answer them
17:36 JimmyZ left #parrot
17:37 whiteknight left #parrot
17:52 zby_home joined #parrot
17:55 theory joined #parrot
17:57 Eclesia hm ... what does this error mean : error:imcc:Bareword method name 'readdir' not allowed in PIR ?
17:57 Eclesia method doesn't exist ?
17:58 benabik Eclesia: It should be 'readdir'
17:59 benabik As in $P0.'readdir'(path)
17:59 benabik With $P0.readdir(path), PIR looks for a variable named readdir that has a function name or handle.
17:59 Eclesia benabik: what are the '' for ?
17:59 benabik Eclesia: Literal string.
18:00 Eclesia but it's a method
18:00 benabik Methods aren't automatically variable names in PIR.  They have to be looked up by name.
18:00 moritz .local string foo
18:00 Eclesia so I better always use those ''
18:01 moritz foo = methodname
18:01 moritz $P0.foo() # calls $P0.'methodname'()
18:02 Eclesia ok
18:02 Eclesia can be used for function reference I see
18:06 Eclesia when I have the result of : folder = filesystem.'readdir'(path)
18:06 Eclesia folder is a pmc
18:06 Eclesia but I don't know what it actually is
18:06 Eclesia what methods available on it ... and so on
18:06 Eclesia is there a way to display a structure of the pmc ?
18:07 Eclesia to see what I can do
18:08 dukeleto Eclesia: there is dumper.pbc
18:08 theory left #parrot
18:08 sorear I think Eclesia wants somthing more like .^methods()
18:09 dukeleto Eclesia:  load_bytecode 'dumper.pbc' and then _dumper(foo)
18:09 * Eclesia would like a real doc of all object in the pir library
18:09 dukeleto Eclesia: that will at least tell you which kind of PMC it is
18:10 sorear perhaps try $P1 = get_class $P0; $P2 = P1.'methods'(); _dumper($P2)
18:10 dukeleto Eclesia: docs/book/pir/
18:11 dukeleto Eclesia: https://github.com/parrot/parrot/blob/​master/docs/book/pir/ch07_objects.pod (which seems to have broken POD)
18:11 dukeleto Eclesia: also, you can run perldoc on any file in src/pmc/*.pmc
18:12 Eclesia dukeleto: that's more a tutorial. I search for some kind of javadoc. with a list a classes, available methods .... stuff like that
18:12 Eclesia a catalog
18:12 sorear dukeleto: the book/ is written using pod6, are you trying to use a pod5 formatter?
18:14 moritz last I looked it was written in PseudoPod, not pod6
18:18 dukeleto yes, that is in pseudopod, not perl 5 pod
18:19 dukeleto Eclesia: if we don't have something like that, we should
18:19 dukeleto Eclesia: running perldoc on each PMC in src/pmc/*.pmc is probably the closest to what you want
18:20 Eclesia dukeleto: i didn't found it, and whiteknight already give me this answer : (19:23:14) whiteknight: Eclesia: not so much, no. Nothing unified and comprehensive
18:21 dukeleto Eclesia: i agree, we don't have something like that, and we should. Do you have an example that we could follow?
18:22 Eclesia hm some kind of basic html page would do.  A simple list. group classes by namespaces in a tree on the left and on the right a description of the class
18:25 benabik Hm.  Stmt and the temporary registers really make checking the generated PIR for differences easier.  Much less random register changes.
18:25 benabik pmichaud++
18:25 Eclesia dukeleto: I'm not neutral, (used to javadoc structure) but a catalog nevermind how it's structured, as long as a list of everyhing is available
18:27 Eclesia dukeleto: example : http://javadoc.geotoolkit.org/ . nothing eyecandys, lists everywhere :D
18:28 Eclesia but at least you can search and find all informations in it
18:30 rurban_ joined #parrot
18:33 rurban left #parrot
18:33 rurban_ is now known as rurban
18:38 dukeleto Eclesia: thanks
18:39 * dukeleto is fighting IMCC from the embed API. Buckets of blood and tears.
18:39 Eclesia imcc ?
18:39 dukeleto Eclesia: IMCC is parrots internal PIR/PASM parser
18:39 dukeleto Eclesia: InterMediate Code Compiler
18:40 dukeleto Eclesia: one of the oldest parts of parrot and the most painful to work with
18:40 Eclesia hehe, good luck. I won't go into this ^^
18:42 dukeleto Eclesia: that is for the best
18:42 * dukeleto just made miniparrot coredump! Feeling special.
18:43 moritz dukeleto: spawning a thread while inside a HLL is enough for that, last I tried
18:46 dukeleto moritz: I am need to add code coverage to Parrot_sub_new_from_c_func in src/extend.c to finish my TPF grant, and it is turning out to be quite fun
18:46 dukeleto s/am need/need/
18:58 dalek parrot/leto/embed_grant: a418dad | dukeleto++ | t/src/extend.t:
18:58 dalek parrot/leto/embed_grant: Fix formatting
18:58 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/a418dadb00
18:58 dalek parrot/leto/embed_grant: a0911db | dukeleto++ | / (2 files):
18:58 dalek parrot/leto/embed_grant: Fix bug in Parrot_sub_new_from_c_func cause by not using PARROT_CALLIN_(START|END) and attempt to add test coverage
18:58 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/a0911dbf76
18:59 Eclesia I am trying to define a constant in pir like this :
18:59 Eclesia .const string X364_START = "\u001B["
18:59 Eclesia .const string X364_END   = "m"
18:59 Eclesia .const string X364_RED = X364_START . 0b31 . X364_END
19:00 Eclesia I can't make those kind of concatenation ?
19:00 moritz no
19:00 moritz there'a 'concat' opcode
19:00 moritz remember that PIR is an assembly language
19:02 Eclesia moritz: what is the correct writing I should use then ?
19:02 Eclesia string + byte + string ?
19:03 moritz $S0 = concat X364_START, '0b31'
19:03 moritz $S0 = concat $S0, X364_END
19:04 Eclesia ok thanks
19:09 Eclesia moritz: http://pastebin.com/pP5D7Nq5 still not good ... can not call functions for constants ?
19:09 moritz Eclesia: $S0 = $S0 . X364_END
19:09 moritz Eclesia: still not good
19:10 moritz Eclesia: in general it also helps if you tell us what errors you get
19:10 Eclesia error:imcc:syntax error, unexpected IDENTIFIER, expecting STRINGC or INTC or FLOATC or USTRINGC ('x364')
19:10 Eclesia in file './X364.pir' line 1
19:10 Eclesia error:imcc:syntax error ... somewhere
19:10 Eclesia in file './X364.pir' line 1
19:14 dukeleto Eclesia: X364_START wasn't defined before you used it
19:16 dukeleto Eclesia: hmm, it seems that you did define it
19:16 Eclesia I can't find a proper order to make it compile ...
19:16 dukeleto Eclesia: concat might not like string constants. You may need $S2 = X364_END and then give $S2 to concat
19:16 Eclesia dukeleto: it's not the concat he doesn't like
19:17 Eclesia it's .const string X364_RED = x364(0b31)
19:17 Eclesia when I remove it everything's fine
19:17 dukeleto Eclesia: you are calling the x364 function during the declaration. That isn't allowed
19:17 dukeleto Eclesia: declare the string first, then assign to it
19:18 dukeleto Eclesia: you can only assign during a declaration if it is "simple", i.e. no nested function calls or anything special
19:18 dukeleto Eclesia: makes sense?
19:18 Eclesia dukeleto: I guess but it's a const so I'm supposed to initialize it
19:20 Eclesia error:imcc:syntax error, unexpected '\n', expecting '='
19:20 Eclesia in file './X364.pir' line 1
19:20 Eclesia he want's a value
19:21 bubaflub joined #parrot
19:21 wagle left #parrot
19:25 Eclesia damn can't even use x364 color encoding ...
19:26 wagle joined #parrot
19:27 dukeleto Eclesia: try = '' and then assign wit = x364(0b31)
19:28 dukeleto s/wit/with/
19:28 dukeleto bubaflub: wazzup
19:28 bubaflub hola dukeleto
19:28 bubaflub how you doing?
19:28 Eclesia dukeleto: not possible. it wouldn't be a const if it was possible
19:29 dukeleto bubaflub: crossing my fingers that I have completed my TPF grant. So freakin' close.
19:29 dukeleto Eclesia: arg. You are correct.
19:30 bubaflub dukeleto: great.  any plans post-grant?
19:30 dukeleto Eclesia: do you require it to be a .constant, or would .local work for you?
19:31 dukeleto bubaflub: enjoy not staring at backtraces and coredumps generated from the embed/extend stuff
19:31 dukeleto bubaflub: and write various conf talks that I should have started already
19:31 bubaflub dukeleto: hahaha.  that sounds like an improvement.
19:32 bubaflub dukeleto: since this is the last year i'm eligible for GSoC i'm thinking about maybe doing some grant work.
19:32 Eclesia dukeleto: can't use .local . I want to access it from anywhere .local is only in a function
19:32 Eclesia "\u001B[" + (byte)31 + "m"   <-- the impossible mission lol
19:34 dukeleto Eclesia: you are trying to assign a constant to a function call. The parser doesn't know that the value of that function call is always the same
19:34 dukeleto Eclesia: i would just expand the call to x364(0b31) and type in the actual value
19:34 Eclesia dukeleto: how can I write a byte value in a string ?
19:35 dukeleto Eclesia: constants can't depend on function calls, even if we can see that the function always returns the same y for a given x
19:36 dukeleto Eclesia: good question
19:37 Eclesia ^^
19:37 Eclesia that's why I use a function to do it
19:39 Eclesia I have the byte values for my string : 27 91 51 49 109
19:39 dukeleto Eclesia: what are you trying to represent with 0b31 ? That isn't valid in PIR either
19:40 Eclesia I'm trying to print colors in the output console
19:40 Eclesia for that we use x3.64 encoding, knowned by nearly all terminals
19:40 Eclesia http://en.wikipedia.org/wiki/ANSI_escape_code
19:41 Eclesia but I haven't been able to print anything with the pir 'say' function
19:43 Eclesia looks like the output formating from parrot is different from the java one
19:44 dukeleto Eclesia: you can use \xNNNN in double quotes
19:45 dukeleto Eclesia: actually, that is just an alias for \u
19:45 dukeleto Eclesia: there is also \c for control characters
19:46 dukeleto Eclesia: they are described in docs/pir/book/ch04_variables.pod
19:49 dukeleto Eclesia: you could make a function that returns the string you want, and then in each function you want to use that, do .local string redcode \n redcode = get_red()
19:49 dukeleto Eclesia: less than awesome, but it might get you on your way
19:50 Eclesia dukeleto: I was thinking, maybe I could create an object with local variable
19:50 Eclesia this way I could write x364.red when I need it
19:52 * Eclesia don't know how to create objects yet lol
19:52 * Eclesia one problem after another
19:54 Eclesia ha :D finally some color showing up
19:55 Eclesia definitly there is difference in string concatenation between java <> pir
20:03 dalek parrot/leto/embed_grant: 3693897 | dukeleto++ | src/extend.c:
20:03 dalek parrot/leto/embed_grant: Add many missing PARROT_CALLIN_(START|END) macros to src/extend.c
20:03 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/369389727f
20:04 * dukeleto realizes that we have a release on tuesday
20:05 dukeleto Eclesia: .local pmc foo \n foo = new 'Hash' \n foo['red'] = ...
20:06 Eclesia dukeleto: *sigh* can not create object in .const
20:07 dalek parrot/leto/embed_grant: cf41a69 | dukeleto++ | .gitignore:
20:07 dalek parrot/leto/embed_grant: Add more code coverage ejecta to .gitignore
20:07 dalek parrot/leto/embed_grant: review: https://github.com/parrot/parrot/commit/cf41a69107
20:07 dukeleto Eclesia: no, can't do that :)
20:07 Eclesia strange other think. I can't access const from another file ?
20:07 sorear you don't want to use const any more than you have to, it is/was hilariously badly designed
20:07 Eclesia thing*
20:11 Eclesia here is the best I obtain : http://pastebin.com/7zM2Pjwh
20:12 Eclesia $S5 = X364_RED()
20:12 Eclesia say $S5
20:12 Eclesia say "hohohoho"
20:12 Eclesia you will see the text in red
20:12 sorear Eclesia: I think you should use global variables for this
20:12 sorear $S5 = get_global "RED"
20:13 Eclesia sorear: what is this get_global ?
20:13 sorear it's an opcode that fetches named values from the local namespace
20:13 sorear $S5 = X364_RED() essentially means $P0 = get_global "X364_RED" \n $S5 = $P0()
20:13 Eclesia sorear: so how can I define RED in x364 namespace for example ?
20:14 sorear .sub 'init' :load :init \n set_global "RED", "whatever" \n .end
20:14 sorear assuming you have .namespace ["x364"] at the top of your file
20:14 perlite left #parrot
20:15 * Eclesia trying this lovely looking solution
20:15 perlite joined #parrot
20:15 sorear you may want to add :anon too
20:15 sorear so nobody can accidentally call init()
20:17 Eclesia sorear:
20:17 Eclesia error:imcc:The opcode 'set_global_sc_s' (set_global<2>) was not found. Check the type and number of the arguments
20:17 Eclesia in file './X364.pir' line 6
20:17 ambs joined #parrot
20:17 * sorear checks src/ops/var.ops
20:18 Eclesia http://pastebin.com/Rd5Dx3kY
20:18 sorear it looks like it needs to be set_global_sc_p
20:18 sorear try $P0 = "value" \n set_global "RED", $P0
20:18 sorear it's funny how PIR is so popular
20:19 * Eclesia do not like it more then that
20:19 sorear from watching the last 50 years of programming language development... I'm amazed that a language without EXPRESSIONS could be such a runaway success
20:20 Eclesia sorear: how can I access a global from another namespace ?
20:20 sorear depends on how far the other namespace is
20:21 Eclesia how far ?
20:21 sorear same HLL scope?
20:21 * Eclesia don't understand chinese :D
20:21 dukeleto sorear: yes
20:21 dodathome left #parrot
20:21 sorear $P0 = get_hll_global ["x364"], "RED"
20:22 Eclesia error:imcc:The opcode 'get_hll_global_s_pc_sc' (get_hll_global<3>) was not found. Check the type and number of the arguments
20:22 Eclesia in file 'Compiler.pir' line 33
20:22 sorear Eclesia: Parrot is designed as a system for running code in multiple languages concurrently
20:22 sorear Eclesia: you need to store the result in a P-var
20:22 dukeleto anybody else see this intermittent t/pmc/threads.t failure? https://gist.github.com/1034700
20:23 sorear Eclesia: Parrot has a concept of a "current HLL", which is automatically added to names
20:23 Eclesia hll == high level language ?
20:23 sorear yes
20:23 sorear Eclesia: so, if you write PIR code for Rakudo, .namespace ["Foo"] actually means .namespace ["perl6", "Foo"]
20:24 sorear if you're not working under any HLL, it usually uses "parrot"
20:24 Eclesia so I should not use any namespace while I'm in pir
20:29 soh_cah_toa joined #parrot
20:29 Eclesia sorear: (sorry to ask again) but what is the correct call to acces a global ?
20:29 dukeleto Eclesia: get_hll_global
20:30 Eclesia dukeleto: error:imcc:The opcode 'get_hll_global_s_sc' (get_hll_global<2>) was not found. Check the type and number of the arguments
20:30 Eclesia in file 'Compiler.pir' line 33
20:30 sorear Eclesia: You need to use a P register
20:30 dukeleto Eclesia: yes, that means that get_hll_global doesn't take a string and a string constant (s and sc)
20:30 theory joined #parrot
20:30 sorear Eclesia: "Check the type and number of the arguments"
20:31 dukeleto Eclesia: perldoc docs/compiler_faq.pod # get_hll_global is explained there
20:33 Eclesia sorear: if I obtain a $P then it's not a string value anymore ?
20:33 sorear it's a PMC wrapping a string value, yes
20:33 Eclesia I actually obtain the value "X364_ENCODE" when i print it
20:33 Eclesia *damn*
20:33 sorear globals can only hold PMCs
20:34 sorear use $P0 = box $S0 to wrap and $S0 = $P0 to unwrap
20:34 sorear ('$P0 = $S0' means something unrelated, so don't)
20:34 Eclesia hm ... it's not better then calling X364_RED() after all :(
20:35 sorear it'll be much faster
20:36 sorear pir sub calls are twice as slow as perl 5 sub calls IME
20:38 Eclesia sorear: writing :
20:38 Eclesia $P5 = get_hll_global ["x364"], "RED"
20:38 Eclesia $S5 = $P5
20:39 Eclesia each time I want some red text is painfull ...
20:40 jnthn__ So...why are you writing in assembly language?
20:40 Eclesia because I dont want to learn N language to write my own
20:41 jnthn__ heh. :)
20:41 dukeleto Eclesia: go learn about .macro
20:41 dukeleto Eclesia: you can write a PIR macro to save your wrists :)
20:41 jnthn__ Writing so much in PIR is one of my main regrets about Rakudo.
20:41 jnthn__ We've finally managed to get off it.
20:42 Eclesia *another one, going to dye before writing my syntaxe parser*
20:42 dukeleto Eclesia: ack '\.macro' docs/
20:42 dukeleto Eclesia: if you want to use a core parrot language, NQP is a lot friendlier, and Winxed is now is Parrot core, but hasn't been in a public release yet
20:43 Eclesia PIR is more friendly then nqp
20:44 Eclesia *that's my opinion*
20:44 moritz fsvo "friendly" :-)
20:44 dukeleto Eclesia: sure, I understand that. Friendliness perceived is a function of previous experience.
20:44 dukeleto Eclesia: NQP is only friendlier than PIR if you are familiar with Perl 5/6. If you are familiar with assembly, PIR feels pretty comfortable.
20:45 Eclesia I'm from java ecosystem remember ^^
20:46 dukeleto Eclesia: ah. Well Winxed looks much like javascript, so that might appeal to you
20:46 Eclesia (but did a bit of asm for pic microships, I guess that's why)
20:46 * dukeleto hopes that he doesn't break master
20:46 dalek parrot: 87aa6b9 | dukeleto++ | t/src/embed/api.t:
20:46 dalek parrot: Remove some unnecessary variables
20:46 dalek parrot: review: https://github.com/parrot/parrot/commit/87aa6b967e
20:46 dalek parrot: b1f21f2 | dukeleto++ | t/src/embed/api.t:
20:46 dalek parrot: Increase embed/api test coverage
20:46 dalek parrot: review: https://github.com/parrot/parrot/commit/b1f21f274e
20:46 dalek parrot: 3f7b5d3 | dukeleto++ | src/extend.c:
20:46 dalek parrot: Refactor duplicated context popping code into a macro
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/3f7b5d350d
20:47 dalek parrot: 46a1347 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Add coverage to Parrot_api_flag
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/46a13474ba
20:47 dalek parrot: 14a15f1 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Add test coverage for Parrot_api_unwrap_pointer
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/14a15f12f4
20:47 dalek parrot: 2266398 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Add coverage to Parrot_api_flag
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/2266398b17
20:47 dalek parrot: 7c4b6f8 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Add a test for Parrot_api_reset_call_signature
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/7c4b6f8971
20:47 dalek parrot: c9c5a00 | dukeleto++ | / (2 files):
20:47 dalek parrot: Decorate some embed api functions and rerun headerizer
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/c9c5a00e65
20:47 dalek parrot: 1d956c5 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Fix type conversion compile error
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/1d956c5901
20:47 dalek parrot: 1e48904 | dukeleto++ | t/src/embed/api.t:
20:47 dalek parrot: Add test coverage for Parrot_api_get_exception_backtrace
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/1e48904b4f
20:47 dukeleto darn.
20:47 dalek parrot: a418dad | dukeleto++ | t/src/extend.t:
20:47 dalek parrot: Fix formatting
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/a418dadb00
20:47 dalek parrot: a0911db | dukeleto++ | / (2 files):
20:47 dalek parrot: Fix bug in Parrot_sub_new_from_c_func cause by not using PARROT_CALLIN_(START|END) and attempt to add test coverage
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/a0911dbf76
20:47 dalek parrot: 3693897 | dukeleto++ | src/extend.c:
20:47 dalek parrot: Add many missing PARROT_CALLIN_(START|END) macros to src/extend.c
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/369389727f
20:47 dalek parrot: cf41a69 | dukeleto++ | .gitignore:
20:47 dalek parrot: Add more code coverage ejecta to .gitignore
20:47 dalek parrot: review: https://github.com/parrot/parrot/commit/cf41a69107
20:47 Eclesia dukeleto: if I use winxed (which is more friendly for me I agree) won't it be even more efforts for the compilation ? isn't winxed code translated in pir before compilation ?
20:47 dukeleto evidently, dalek didn't like that I forgot to do a --no-ff, dukeleto--
20:48 jsut joined #parrot
20:48 dukeleto Eclesia: sure, but you can generate bytecode once (.pbc file) and then run that many times, and never pay the parse cost, only the runtime cost
20:49 Eclesia hm... and I could use whiteknight rosella lib
20:49 dukeleto Eclesia: yes. Rosella is the bees knees. It saves you a lot of time and gives you the basics that everybody wants and needs.
20:50 dukeleto Eclesia: what exactly are you working on, may I ask?
20:50 Eclesia something strange ^^ a multi-syntaxique programming model
20:51 * dukeleto hopes that the above merge finishes his TPF grant, and waits for the official coverage reports to update
20:52 Eclesia I want to leave the Java world. so I thinked about different solutions, and ended with a document of ideas describing a standard projet organisation with several syntaxes and paradygms
20:52 Eclesia And I want to see if it works
20:52 dukeleto Eclesia: interesting
20:52 dukeleto Eclesia: is it on github?
20:53 Eclesia nope mercurial, bu only on a private server
20:53 Eclesia but*
20:53 jsut_ left #parrot
20:53 dukeleto Eclesia: release early and often is my motto
20:54 dukeleto Eclesia: also known as "publish or perish" in academia ;)
20:54 Eclesia it's a personal project.
20:54 dukeleto Eclesia: gotcha
20:54 Eclesia I know what it is to maintain a project alone : http://puzzle-gis.codehaus.org :p
20:55 dukeleto Eclesia: what exactly are you using Parrot for? Just trying to understand.
20:55 ttbot Parrot cf41a691 MSWin32-x86-multi-thread make error http://tt.taptinder.org/cmdinfo/22985
20:55 dukeleto darn.
20:57 Eclesia dukeleto: I am working in Geographic information systems. (GIS) but Java is getting more and more private, and JVM implementation are slowly disapearing. So before it's too late I want to have a replacement solution and a reliable core library for GIS.
20:58 Eclesia dukeleto: that mean : having image readers and opengl
20:58 Eclesia dukeleto: and somekind of java/C# language available
21:00 Eclesia dukeleto: am I dreaming ? :-D
21:00 dukeleto Eclesia: cool. That sounds awesome. Would this interact with OpenStreetMap ?
21:00 tadzik squaak! o/
21:01 dukeleto Eclesia: sounds like a nice dream, I will do what I can to help
21:01 Eclesia dukeleto: sure, I already written java code to communicate with OSM
21:02 Eclesia can code anything in gis, has long as I have solid core libraries
21:02 Eclesia as*
21:02 dukeleto Eclesia: awesome. I would very much like to see Parrot and OpenStreetMap talk to each other
21:03 * dukeleto attempts to fix master on win32
21:03 Eclesia osm is one of the easiest gis server schema ^^ wms, wfs, csw ... (all other ogc/osgeo spec) are harder
21:04 dukeleto Eclesia: good to know
21:06 dalek parrot: 782bf96 | dukeleto++ | src/extend.c:
21:06 dalek parrot: Attempt to make the MSWin32-x86-multi-thread ttbot happy by ANSI-89-ification
21:06 dalek parrot: review: https://github.com/parrot/parrot/commit/782bf966bf
21:06 dukeleto mj41++ # ttbots are useful
21:08 Eclesia dukeleto: http://imageshack.us/photo/m​y-images/580/capturedfd.png/
21:10 dukeleto Eclesia: looks shiny
21:13 Eclesia more funny to look at in a polar projection. osm only provide a single projection, so on the client side we transform tiles when rendering
21:13 Eclesia http://imageshack.us/photo/m​y-images/97/capture1jka.png/
21:14 Eclesia well. time to go. see you later and thanks for the help dukeleto and sorear
21:14 Eclesia left #parrot
21:16 dalek lua: 2792a9d | fperrad++ | lua/lib/luabasic.pir:
21:16 dalek lua: fix after https://github.com/parrot/parrot/commit/​6afb0ae02319c56080dec9ffb902f02471331595
21:16 dalek lua:
21:16 dalek lua: (.annotate file)
21:16 dalek lua: review: https://github.com/fperrad/lua/commit/2792a9db51
21:22 bubaflub http://www.splitbrain.org/blog/2011-​06/19-automate_github_pull_requests - command-line script to examine GitHub pull requests
21:23 ambs left #parrot
21:33 contingencyplan joined #parrot
21:33 PacoLinux left #parrot
21:41 dalek parrot: 0893012 | fperrad++ | compilers/pct/src/POST/Compiler.pir:
21:41 dalek parrot: [pct] properly escape annotation
21:41 dalek parrot: (fix needed by Lua)
21:41 dalek parrot: review: https://github.com/parrot/parrot/commit/0893012dfe
21:42 PurityControl joined #parrot
21:42 fperrad left #parrot
21:47 Patterner left #parrot
21:47 PurityControl is now known as Patterner
22:25 dukeleto bubaflub: tools/dev/merge_pull_request.pl
22:25 bubaflub dukeleto: what sorcery is this?!?!
22:25 dukeleto bubaflub: my special kind
22:25 bubaflub dukeleto++
22:27 dukeleto yay, ttbot seems to be happy":
22:27 dukeleto blarg: http://tt.taptinder.org/cmdinfo/23141
22:29 bubaflub nice, the windows build is fixed?
22:29 dukeleto bubaflub: what are you hacking on?
22:29 bubaflub dukeleto: GSoC stuff, eventually back to Math::Primality stuff.  i've got a number of ideas to implement some nice algorithms - maybe not fast but certainly clean and verifiable
22:30 bubaflub dukeleto: at work i'm doing some stuff with Catalyst; i'm also interested in maybe hacking on NYTProf - i saw an exchange on twitter about getting a stand-alone webserver bundled with NYTProf so you could view the results in a browser locally
22:32 dukeleto bubaflub: where are you in parrot-gmp-land?
22:33 bubaflub dukeleto: the PIR bindings, the inline docs, and the Winxed class are all generated from gmp.h and the documentation (gmp.html).  test suite is more than half way done.  all tests pass except for one that segfaults, which i'll look into shortly.
22:35 bubaflub dukeleto: blogged yesterday (http://www.parrot.org/cont​ent/parrot-gmp-more-tests) about where i'd like to end up by midterm
22:37 * dukeleto reads
22:38 bubaflub dukeleto: i'm heading out for a bit, but i'll be back in a few hours if you'd like to chat more / skype
22:39 dukeleto bubaflub: okey dokey
22:39 dukeleto lucian: how goes puffin?
22:39 lucian dukeleto: uh, not great i guess
22:40 lucian where to put names is not obvious in parrot, sadly
22:41 lucian i'm working on improving the compiler (which can only do assignments with the object system so far)
22:41 lucian but apparently i don't quite have good enough tests for the object system in the first place
22:41 lucian dukeleto: a blog post will be delayed
22:41 lucian i'll take a short 3-day vacation starting on tuesday
22:44 cjh left #parrot
22:44 cjh joined #parrot
22:44 dukeleto lucian: a very short blog post only takes a few mins...
22:44 lucian for which i will find time tomorrow :)
22:45 dukeleto lucian: and if you are hitting troubles, please send questions to parrot-dev too. Many useful and smart folks don't hang out on IRC much
22:46 dukeleto lucian: let's try to skype after you get back from vacation
22:46 lucian dukeleto: perhaps i should. though i'm fairly convinced it just parrot being silly :)
22:46 lucian s/it just/it's just/
22:47 dukeleto lucian: asking people often helps you figure it out yourself :)
22:47 lucian yes, most people said i should just use a hash
22:50 dukeleto lucian: hashes are nice and simple
22:50 lucian yes, but somewhat opaque
22:50 lucian in fact, i could just use a python 'dict'
22:55 cotto ~~
22:58 bubaflub left #parrot
23:01 dalek parrot: 4c05d38 | mikehh++ | MANIFEST.SKIP:
23:01 dalek parrot: re-generate MANIFEST.SKIP
23:01 dalek parrot: review: https://github.com/parrot/parrot/commit/4c05d38018
23:01 dalek parrot: 037628f | mikehh++ | src/extend.c:
23:01 dalek parrot: wrap macro arguments
23:01 dalek parrot: review: https://github.com/parrot/parrot/commit/037628f8a0
23:14 whiteknight joined #parrot
23:33 daniel-s joined #parrot
23:33 NotFound ~~
23:38 mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-290-g037628f
23:38 mikehh Ubuntu 11.04 i386 (g++)
23:39 mikehh stoopid t/pmc/threads.t failed first time around in testf with a segfault but passed when I re-ran fulltest
23:40 mikehh (and make testf) which takes quite a bit of time
23:41 mikehh I am pretty sure that the failures (very intermittent) are timer related (I nearly always run with TEST_JOBS=4)
23:42 ligne left #parrot
23:44 mikehh NotFound: what are you doin' up at this hour, (I am doing some test related work on a Server that is only available to me at this time)
23:45 perlite left #parrot
23:45 NotFound mikehh: just arriving home and relaxing a bit before going to sleep.
23:46 NotFound After 5 hours driving.
23:48 mikehh NotFound: I try and avoid too much of that, almost had to drive down to Edinburgh today, which is nearly 3 hours each way
23:49 NotFound mikehh: life sometimes make its own plans.
23:49 mikehh NotFound: you better believe it :-}
23:50 lucian left #parrot
23:50 nopaste "soh_cah_toa" at 192.168.1.3 pasted "Test Failure for pbc_disassemble" (100 lines) at http://nopaste.snit.ch/53338
23:51 soh_cah_toa any input on that would be appreciated
23:57 mikehh soh_cah_toa: the function of src/checkdepend.t is to make sure the makefile builds the necessary dependencies before it is used if running make -j(n)
23:58 mikehh so what it is telling you is that you need to specify other dependencies in the makefile
23:58 soh_cah_toa hmm...
23:58 soh_cah_toa i thought i listed all my dependencies though
23:59 soh_cah_toa well, obviously not but i don't know what else it depends on
23:59 mikehh you probably missed one of them

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

Parrot | source cross referenced