Camelia, the Perl 6 bug

IRC log for #parrot, 2011-05-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:04 Andy joined #parrot
00:13 * soh_cah_toa is back and still frustrated w/ winxed >:(
00:14 whiteknight I've never seen anything like that with winxed, and I regularly run it on a system with 512Meg RAM
00:15 whiteknight soh_cah_toa: is that the 3.3.0 tag from github, or current HEAD?
00:15 whiteknight opbots trust soh_cah_toa
00:15 slavorg Ok
00:15 slavorgn Ok
00:15 soh_cah_toa how do i find out? i'm still new to git
00:16 whiteknight git describe --tags
00:17 soh_cah_toa RELEASE_3_3_0-72-g06bb92c
00:19 soh_cah_toa oh wait
00:19 soh_cah_toa sorry, that's my host os
00:19 whiteknight oh, okay
00:20 whiteknight in parrot, do a "git checkout RELEASE_3_3_0", then make and reinstall again
00:20 soh_cah_toa RELEASE_3_3_0-72-g06bb92c
00:20 soh_cah_toa alright
00:20 whiteknight I'm only suggesting this to rule out the possibility that you have changes after the release which cause problems
00:20 soh_cah_toa okay
00:20 whiteknight I always use plumage to install winxed without problems. I've never tried to do it directly
00:21 soh_cah_toa to be honest, i've never used plumage
00:21 soh_cah_toa i'll try it after i reinstall parrot
00:21 whiteknight plumage is nice
00:22 whiteknight parrot setup.pir build && parrot setup.pir install && plumage install winxed
00:22 soh_cah_toa i've never quite understood it. why a package manager for a vm? i mean, when i think of a package manager i think of yum or apt-get
00:23 benabik soh_cah_toa: For the same reason you use apt-get.  To manage libraries. :-D
00:23 whiteknight soh_cah_toa: you'll understand it when you use it
00:23 whiteknight it's worthwhile
00:24 soh_cah_toa alright, i'll give it a try
00:24 whiteknight what version of ubuntu?
00:25 lucian_ joined #parrot
00:25 soh_cah_toa the newest: 11.04. i don't normally use ubuntu though. i'm an rpm kinda guy. i just quick threw it together to get started w/ parrot because it would be quickest to install
00:25 lucian left #parrot
00:25 whiteknight I have not been too happy with 11.04
00:26 whiteknight I haven't updated my laptop to use it, only my one vm
00:26 whiteknight and of course the vm doesn't have enough muscle to run unity, so I can't test that
00:26 whiteknight and I won't install on my laptop if I can't test it first
00:27 soh_cah_toa i really don't notice a difference. but then again i really only use it for parrot stuff and don't really dig around inside. that's my fedora machine's job :)
00:27 soh_cah_toa wow, frozen. really?
00:28 soh_cah_toa ugh...
00:29 soh_cah_toa rebuilding...
00:31 whiteknight maybe you just have a problem with that VM
00:31 soh_cah_toa i have a different problem on EVERY system i use
00:31 soh_cah_toa all w/ winxed
00:31 soh_cah_toa it's nuts
00:33 whiteknight that's weird
00:33 whiteknight it's always been extremely stable and usable for me
00:34 soh_cah_toa agh...still giving me issues. forget it. let me nopaste what my fedora machine complains about. h/o
00:35 nopaste "soh_cah_toa" at 192.168.1.3 pasted "More Winxed Issues" (35 lines) at http://nopaste.snit.ch/43087
00:36 soh_cah_toa oh wait, h/o that's not it
00:36 soh_cah_toa that, i just forgot sudo
00:37 soh_cah_toa it's this: "parrot setup.pir \n make: parrot: Command not found \n make: *** [install] Error 127"
00:37 soh_cah_toa but parrot is installed
00:37 soh_cah_toa that's what i get w/ "sudo make install"
00:38 whiteknight make install for winxed?
00:38 soh_cah_toa yeah
00:38 soh_cah_toa i'll try plumage now
00:39 whiteknight the winxed makefile does have an install target
00:39 whiteknight definitely try plumage
00:40 soh_cah_toa h/o i think i'm seeing a pattern
00:40 utsl left #parrot
00:41 utsl joined #parrot
00:41 soh_cah_toa after "sudo parrot setup.pir install" i get "sudo: parrot: command not found" which is similar to what i got when using sudo to install winxed
00:41 soh_cah_toa oh, that's installing plumage btw
00:41 dukeleto soh_cah_toa: parrot is not in the PATH of your root user
00:41 benabik Sudo cleans out the path, so if parrot is in a wierd directory, that will fail.
00:42 soh_cah_toa dukeleto: that's what i'm thinking
00:42 dukeleto soh_cah_toa: use the full path to the parrot binary
00:42 whiteknight soh_cah_toa: where is parrot installed?
00:43 whiteknight try the install without sudo
00:43 dukeleto soh_cah_toa: and why are you needing sudo ?
00:43 soh_cah_toa tada!
00:43 whiteknight tada!
00:44 soh_cah_toa dukeleto: i always need sudo w/ things like make install b/c i use the default directory which is usually something like /usr/local/bin
00:45 soh_cah_toa wow, plumage is kickass
00:45 whiteknight soh_cah_toa: where is parrot installed on your system?
00:45 soh_cah_toa winxed. installed. done. 2 seconds
00:45 whiteknight I told you plumage was awesome
00:45 soh_cah_toa /usr/local/bin
00:46 whiteknight ok
00:48 soh_cah_toa i don't see how plumage installed it any differently from what i was trying to do but whatever. it's done
00:48 whiteknight I'm telling you, it's magic
00:49 soh_cah_toa ah...finally lolcode
00:49 whiteknight now your life is complete
00:49 dukeleto soh_cah_toa: sudo is no bueno
00:49 soh_cah_toa dukeleto: howcome?
00:50 whiteknight soh_cah_toa: your homework is to write a lolcode program that calls a module written in Winxed
00:50 dukeleto soh_cah_toa: security issues and other reasons
00:50 dukeleto soh_cah_toa: https://github.com/leto/Util​/blob/master/bin/new_parrot
00:50 dukeleto soh_cah_toa: that script is what I use to compile parrots
00:50 dukeleto soh_cah_toa: and it installs the parrot into the build directory
00:50 bubaflub soh_cah_toa: i've found that using sudo once causes me to use it for all future invocations; setting the right permissions can be a pain in the butt but it's worth it
00:50 dukeleto soh_cah_toa: and then I add that to my PATH
00:50 dukeleto soh_cah_toa: no sudo needed, ever. For parroty stuff, at least.
00:51 soh_cah_toa dukeleto: alright, i'll give that a try
00:51 dukeleto soh_cah_toa: set TEST_JOBS to the number of CPUs you have, plus 1
00:51 dukeleto soh_cah_toa: that script assumes that TEST_JOBS is defined, which is a bug
00:51 soh_cah_toa whiteknight: that'd be fun
00:52 soh_cah_toa dukeleto: okay
00:52 whiteknight soh_cah_toa: I actually don't know how lolcode does it. But if it has the ability to load_language and compreg, you can do anything
00:53 soh_cah_toa whiteknight: you know, that reminds me...what's compreg? i saw it w/ the imcc_compreg branch and then i saw a pir code example with the compreg opcode but i can't figure out what it stands for
00:53 whiteknight it's a really stupid cntraction of "compiler register"
00:53 whiteknight I think
00:53 whiteknight basically, you use that to register a compiler object with the system, and to retrieve it again laster
00:54 whiteknight later
00:54 whiteknight so if you want the PIR compiler object, you do "$P0 = compreg 'PIR'"
00:54 whiteknight and then $P1 = $P0.compile_file('my/file/name.pir')
00:54 whiteknight or $P1 = $P0.compile_string("...")
00:54 lucian_ whiteknight: you can try unity-qt in the vm i think, if you care
00:55 whiteknight lucian_: I might if I get bored
00:55 whiteknight but probably not
00:55 lucian_ is now known as lucian
00:55 soh_cah_toa whiteknight: is that any better/worse than just .include 'foobar.pir'?
00:56 whiteknight soh_cah_toa: .include is a compile-time directive. compiler objects let you compile and load on the fly
00:56 whiteknight you can create code strings in your program then compile them
00:56 whiteknight you can inline Winxed code in NQP code with the compreg. compile it at runtime and execute it
00:56 soh_cah_toa whiteknight: okay. hmm...i actually may be able to use something like that w/ the debugger
00:56 whiteknight soh_cah_toa: definitely. I'm sure of it
00:57 whiteknight for things like macros
00:57 whiteknight the user enters code, you compile it on the fly and execute the resulting subs
00:57 soh_cah_toa that's exactly what i was thinking
00:59 ShaneC left #parrot
00:59 soh_cah_toa whiteknight: how do you suggest implementing the step algorithm? b/c the book i'm reading has the compiler insert a trap instruction at each line and when the program is ran, it simply traps to the debugger at each line. but i don't think i can do that here
01:00 soh_cah_toa i'm sorry, not the compiler. the debugger inserts the trap instruction at the next address and then replaces the instruction later
01:00 soh_cah_toa but parrot doesn't even have an eip-like register either
01:04 soh_cah_toa actually, i suppose i could just stop at the next line annotation but then how do i actually stop? there's no trap opcode
01:04 dukeleto soh_cah_toa: have you decided to use Winxed or NQP for your gsoc project? Or are you still researching that?
01:05 soh_cah_toa dukeleto: ugh...don't remind me ;) i'm still a little unsure. winxed seems nice but i want to spend the remaining time on gathering ideas not learning a new language
01:06 dukeleto soh_cah_toa: for that reason, I think NQP will suit you better. There will also be less work to do with NQP, in general, because NQP is included in Parrot core
01:06 dukeleto soh_cah_toa: but the final decision is for you and your mentor
01:07 soh_cah_toa dukeleto: yeah, i wanted to talk to him but i think he just got back from lfnw
01:07 dukeleto soh_cah_toa: but I think spendig a few days doing similar things with both is still very useful for you
01:07 dukeleto soh_cah_toa: oh yeah, i forgot that cotto++ was your mentor
01:09 soh_cah_toa dukeleto: yup
01:09 dukeleto soh_cah_toa: consider the bonding period a good time to learn everything you can about parrot, in general. Learning some Winxed will surely increase your understanding of Parrot
01:09 dukeleto soh_cah_toa: i think you should write a very simple program, just a toy, really, and implement it in both NQP and Winxed, to see how they differ
01:09 dukeleto soh_cah_toa: and record roughly how much time each took you
01:10 dukeleto soh_cah_toa: for example, a program that computes the sum of the first 100 primes
01:10 soh_cah_toa dukeleto: agh! no math! lalalala can't hear you!
01:10 dukeleto soh_cah_toa: lulz
01:11 dukeleto soh_cah_toa: ok. A program that computes the longest substring that is the same between two input strings
01:11 dukeleto soh_cah_toa: better?
01:11 soh_cah_toa dukeleto: much
01:12 dukeleto soh_cah_toa: ok. Consider that your homework. This is definitely increase your knowledge of Parrot, NQP and Winxed, and give you a data point for whether to use NQP vs. Winxed
01:12 dukeleto soh_cah_toa: it is a bucket full of win
01:12 dukeleto s/This is/This will/
01:13 soh_cah_toa dukeleto: yeah, simple yet very helpful. i should've thought of that by now
01:13 bluescreen left #parrot
01:14 soh_cah_toa dukeleto: what do you think about what i said earlier? how can i actually "stop" the debugee process w/o a trap instruction?
01:14 dukeleto soh_cah_toa: which thing that you said earlier? I haven
01:14 dukeleto haven't backlogged, that is.
01:16 dukeleto soh_cah_toa: have you read the source of the current parrot_debugger ?
01:16 soh_cah_toa dukeleto: a little
01:16 soh_cah_toa yeah, i suppose i should go back to that
01:16 soh_cah_toa i've been caught up in what language to use
01:16 dukeleto soh_cah_toa: it is useful as a guide for how things are done now
01:17 dukeleto soh_cah_toa: if you want me to decide for you, I can tell you NQP. But that would rob you of the knowledge acquired by coming to that answer by yourself.
01:19 soh_cah_toa dukeleto: yeah, i was leaning that way for quite a while
01:20 dukeleto soh_cah_toa: so you plan to use parrot-instrument still?
01:20 dukeleto soh_cah_toa: i don't know if anybody has ever used that from Winxed
01:20 dukeleto or am I mixing up my proposals?
01:21 soh_cah_toa dukeleto: oh yeah, i never considered how i'd do that w/ winxed
01:22 dukeleto soh_cah_toa: indeed.
01:22 dukeleto soh_cah_toa: have you run the parrot-instrument tests ? Do they pass on master?
01:23 dukeleto soh_cah_toa: not enough people use that, and it may have some bitrot
01:23 soh_cah_toa dukeleto: yeah whiteknight found some memory allocation issues
01:24 whiteknight parrot-instrument is broked
01:24 dukeleto where does it even live?
01:24 dukeleto it is not in the parrot github repo
01:24 whiteknight and I am becoming less and less optimistic that I can fix it
01:24 dukeleto whiteknight: sadface mcgee
01:24 whiteknight github.com/Whiteknight/parrot-instrument.git
01:24 soh_cah_toa oh you've got to be kidding me!!! now nqp-rx won't install! t/nqp/46-charspec.t says "Dubious, test returned 1 (wstat 256, 0x100)"
01:24 whiteknight dukeleto: I definitely need more eyes to help debugging it
01:25 bluescreen joined #parrot
01:25 soh_cah_toa Parse errors: No plan found in TAP output
01:25 dukeleto soh_cah_toa: gist the output of prove -v t/nqp/46-charspec.t
01:26 dukeleto whiteknight: how do you feel about putting parrot-instrument in the parrot github repo?
01:26 whiteknight dukeleto: I'm fine with it. It's in my profile now because I forked it from khairul
01:26 whiteknight he wasn't using it, so I forked it
01:26 whiteknight I'm happy moving it to parrot
01:26 whiteknight or forking it to parrot
01:27 whiteknight whatever we need to do to get more eyes on it
01:27 dukeleto whiteknight: yes, if you could put it into the parrot github, that would be awesome
01:27 whiteknight I'll fork it there tonight
01:27 dukeleto whiteknight: then I will add it to my jitterbug instance: http://new.leto.net:3000/
01:27 dukeleto whiteknight++
01:27 whiteknight dukeleto: oh great. Jitterbug. That way we can see it fail every time it fails because it's broke
01:28 whiteknight that's what we need, a constant reminder of its brokenness
01:28 dukeleto whiteknight: lulz. Yes.
01:29 dukeleto whiteknight: I will attempt to help fix some bugs in it, but I am deep in M0 territory
01:29 whiteknight https://github.com/parrot/parrot-instrument
01:29 whiteknight dukeleto: yeah, that's fine
01:30 nopaste "soh_cah_toa" at 192.168.1.3 pasted "nqp-rx test failure" (14 lines) at http://nopaste.snit.ch/43088
01:30 dukeleto whiteknight: but it is easy for me to smoke it from different machines, etc...
01:31 dukeleto soh_cah_toa: looks like the shebang line of that test is wrong
01:31 whiteknight soh_cah_toa: do you have ICU installed?
01:31 whiteknight that nqp test probably requires ICU
01:31 whiteknight if not, don't worry about it. You don't need ICU for most usages
01:32 soh_cah_toa whiteknight: never heard of it. nqp-rx won't install w/ test failures though
01:32 whiteknight soh_cah_toa: ICU is the library Parrot uses for unicode. If you want to pass that test, you need to install it, reconfigure and rebuild parrot
01:33 whiteknight Parrot already includes NQP. If you have parot, you have parrot-nqp
01:34 soh_cah_toa whiteknight: oh yeah
01:34 soh_cah_toa whiteknight: okay. actually it did install. whatever, now at least i can begin comparing languages
01:35 dukeleto whiteknight: parrot-instrument has no license file
01:35 dukeleto whiteknight: you ok with adding the normal parrot license info and all that jazz?
01:35 whiteknight dukeleto: sure, whatever
01:35 dukeleto whiteknight: hokely dokely
01:37 ShaneC joined #parrot
01:38 dukeleto whiteknight: dalek should announce commits for parrot-instrument now
01:38 whiteknight w00t
01:39 dukeleto whiteknight: I added it to jitterbug, but I have to fix some issues on my server. parrot isn't in the PATH of jitterbug
01:39 ShaneC left #parrot
01:40 bacek_at_work ~~
01:41 dukeleto bacek_at_work: greetings, meat bag
01:41 bacek_at_work dukeleto, aloha, bunch of spare parts
01:42 dukeleto bacek_at_work: glad to see you unstuck yourself in the jit prototype
01:43 whiteknight bacek++
01:43 bacek_at_work dukeleto, just 2 weeks of thinking and playing with LLVM. It's kind of cheating on "type analyses". I'll probably write blogpost about it tonight/tomorrow
01:43 whiteknight bacek++
01:44 bacek_at_work whiteknight, aloha, magical blogging robot :)
01:45 whiteknight bacek: :)
01:46 dukeleto soh_cah_toa: you can tell cotto++ that I recommend you use NQP, but I still think playing around with some HLLs (like Winxed) will be generally helpful to your parrot knowledge
01:46 * dukeleto goes for a run
01:46 dukeleto soh_cah_toa: I still want to see the substring program, though :)
01:46 * dukeleto really goes
01:46 * whiteknight goes to dream about running
01:47 soh_cah_toa dukeleto: of course, see ya
01:47 whiteknight left #parrot
02:22 dalek parrot: c9d66d7 | petdance++ | / (2 files):
02:22 dalek parrot: fixing arg annotations
02:22 dalek parrot: review: https://github.com/parrot/parrot/commit/c9d66d7853
02:34 mikehh left #parrot
02:43 dalek parrot: e0e46b5 | petdance++ | / (2 files):
02:43 dalek parrot: fixing arg annotations
02:43 dalek parrot: review: https://github.com/parrot/parrot/commit/e0e46b526a
02:45 ttbot Parrot e0e46b52 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/348
02:49 woosley joined #parrot
03:02 bluescreen left #parrot
03:05 cotto joined #parrot
03:05 lucian left #parrot
03:06 dukeleto msg Andy looks like you broke master with e0e46b5 http://new.leto.net:3000/project/parrot
03:06 aloha OK. I'll deliver the message.
03:06 Andy agh
03:08 Andy Hmm, someone's passing NULL instead of STRINGNULL
03:09 Andy Found two places
03:10 dukeleto naughty nellies
03:13 Andy It's existing code
03:13 Andy in Parrot
03:14 bubaflub left #parrot
03:16 Andy let's see how that goes
03:16 dalek parrot: 7c64447 | petdance++ | src/ (2 files):
03:16 dalek parrot: pass STRINGNULL to Parrot_io_open_handle, not NULL
03:16 dalek parrot: review: https://github.com/parrot/parrot/commit/7c644478f9
03:21 soh_cah_toa left #parrot
03:22 cotto ~~
03:23 cotto the system works
03:23 cotto wootsauce
03:25 dukeleto cotto: good to hear
03:25 Andy yay looks fixed
03:25 dukeleto Andy++ # jitterbug smiles upon your code
03:25 dukeleto Andy++ # fixing obscure bugs
03:25 Andy I haven't fixed anything.
03:25 Andy I made a bug.
03:27 dukeleto Andy: fine. Andy--
03:27 Andy :-P
03:27 Andy I'm just hoping that eventually it will catch actual bugs.
03:27 * dukeleto is just glad that jitterbug is being useful
03:27 dukeleto at least to me, it is
03:27 Andy what's jitterbug
03:28 KaeseEs it's a dance, see; you if anyone should be familiar with it :)
03:32 simcop2387_ joined #parrot
03:33 simcop2387 left #parrot
03:33 simcop2387_ is now known as simcop2387
03:34 mikehh joined #parrot
03:38 dukeleto Andy: jitterbug is running at http://new.leto.net:3000/
03:38 cotto dukeleto, are your slides online?
03:39 dukeleto Andy: it lives at https://github.com/franckcuny/jitterbug
03:39 dukeleto cotto: yeps
03:39 dukeleto Andy: https://github.com/leto/presentations​/raw/master/2011/LinuxFestNW/pres.pdf
03:39 dukeleto that is a presentation I just gave yesterday at LinuxFestNW
03:42 dukeleto Andy: it is basically a smoker with a pretty web interface (written in Dancer)
03:42 dukeleto Andy: but it is unique because it wants to know how to run any languages tests. Jitterbug is language-agnostic, and dare I say, Acmeist.
03:44 hudnix left #parrot
03:48 hudnix joined #parrot
03:53 Andy left #parrot
03:58 particle1 joined #parrot
03:58 eternaleye_ joined #parrot
03:58 AzureSto_ left #parrot
03:58 dalek left #parrot
03:58 eternaleye left #parrot
03:58 varta left #parrot
03:58 arnsholt_ joined #parrot
03:59 Maddingu1 joined #parrot
03:59 dalek joined #parrot
03:59 perlite_ joined #parrot
03:59 AzureStone joined #parrot
03:59 perlite left #parrot
03:59 perlite_ is now known as perlite
03:59 varta_ joined #parrot
03:59 Maddingue left #parrot
03:59 arnsholt left #parrot
03:59 frodwith left #parrot
03:59 hudnix left #parrot
04:00 frodwith joined #parrot
04:00 hudnix joined #parrot
04:00 wagle left #parrot
04:00 wagle joined #parrot
04:01 dalek parrot: 0e40ecf | dukeleto++ | tools/dev/merge_pull_request.pl:
04:01 dalek parrot: Make merge_pull_request.pl default to parrot.git, but allow other repos to be specified
04:01 dalek parrot: review: https://github.com/parrot/parrot/commit/0e40ecf80b
04:01 dalek parrot: 49d9591 | dukeleto++ | tools/dev/merge_pull_request.pl:
04:01 dalek parrot: Remove some suboptimal error handling from merge_pull_request.pl
04:01 dalek parrot:
04:01 dalek parrot: Previously, if a "git stash" failed, this script would still attempt
04:01 particle left #parrot
04:01 dalek parrot: to continue. Now, in true Klingon form, we die() instead of return()
04:01 dalek parrot: in failure.
04:01 dalek parrot: review: https://github.com/parrot/parrot/commit/49d9591779
04:27 cotto It is a good day to return.
04:33 cotto dukeleto, ping
04:41 hudnix left #parrot
04:46 bubaflub joined #parrot
05:28 bubaflub left #parrot
05:39 dukeleto cotto: pong
05:39 * dukeleto had such a good run he is icing his ankle
05:51 dalek parrot: cfc4afe | dukeleto++ | tools/dev/merge_pull_request.pl:
05:51 dalek parrot: Add more docs to merge_pull_request and allow a branch name to be specified
05:51 dalek parrot: review: https://github.com/parrot/parrot/commit/cfc4afe372
05:51 cotto dukeleto, I think it makes sense in M0's bytecode format to put the constant for each segment before the size.  Have you started on that part yet?
05:52 cotto dukeleto, also, I see in the spec that I do use chunk names in the binary format.  I forgot about that when we were talking earlier.
05:55 dalek parrot/m0-spec: 2abb2f4 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
05:55 dalek parrot/m0-spec: put the constant for each M0 segment type at the beginning of the segment
05:55 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/2abb2f4f0f
05:55 dalek parrot/m0-spec: c40920f | cotto++ | docs/pdds/draft/pdd32_m0.pod:
05:55 dalek parrot/m0-spec: add values for segment number constants
05:55 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/c40920f53d
05:55 dalek parrot/m0-spec: f8397af | cotto++ | docs/pdds/draft/pdd32_m0.pod:
05:55 dalek parrot/m0-spec: make order of chunk dir consistent with the rest of the spec
05:56 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/f8397af84e
05:56 dalek parrot/m0-spec: 0ec0240 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
05:56 dalek parrot/m0-spec: be more explicit about the meaning of offsets in the M0 spec
05:56 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/0ec02405d3
05:56 dalek parrot: 8c20c2a | dukeleto++ | tools/dev/ (43 files):
05:56 dalek parrot: Update tools/dev README and +x executables
05:56 dalek parrot: review: https://github.com/parrot/parrot/commit/8c20c2aa72
05:57 dukeleto cotto: do you want to update the hello.m0 ? I don't quite understand what you mean, but if you change hello.m0 to your liking, then I will understand
05:58 cotto dukeleto, deal
05:59 cotto actually, I don't need to.  The changes only have an effect on the binary representation.
05:59 dukeleto cotto: ah. well I need to generate the binary representation, so I need to know what you mean.
05:59 cotto Interestingly, I find myself implementing a very dumbed-down assembler to test the interp.
06:00 theory left #parrot
06:00 dukeleto cotto: so what you meant above was that the constant for each segment before the size, in the binary representation ?
06:00 dukeleto cotto: do you have any binary bytecode crafted yet?
06:00 cotto yes
06:00 cotto no
06:00 cotto I'm writing some tests that'll generate very simple m0b files.
06:01 dukeleto cotto: i think i understand everything about parsing M0 source, but there are still some unknowns about generating the binary representation
06:01 cotto fire away
06:01 dukeleto cotto: can you change the spec to reflect what you mean by "put the constant for each segment before the size" ?
06:01 dukeleto cotto: perhaps that will enlighten me
06:02 cotto dukeleto, I did
06:02 cotto dukeleto, https://github.com/parrot/parrot/commit/2abb2f4f0f
06:04 dukeleto cotto: ah, i am blind, evidently
06:06 davidfetter left #parrot
06:07 dukeleto cotto: ok. once I wrap my head around opcode_t, I should be set
06:10 cotto That needs a bit of thought.  Originally I thought that it'd be either 4 or 8 bytes, but I'm not sure if there's a good reason not to say it'll always be 4 bytes.
06:11 dalek cardinal: 5b7ce29 | (Kim, Daehyub)++ | Rakefile:
06:11 dalek cardinal: Add new rake tasks
06:11 dalek cardinal: * tags:emacs        # Generate tags for emacs
06:11 dalek cardinal: * tags:gen_option   # Generate ctags option file
06:11 dalek cardinal: * tags:vi           # Generate tags for vim
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/5b7ce2933b
06:11 dalek cardinal: 2a2e98f | (Kim, Daehyub)++ | .gitignore:
06:11 dalek cardinal: Ignore tags and ctags_opt
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/2a2e98fa72
06:11 dalek cardinal: a845a97 | (Kim, Daehyub)++ | README:
06:11 dalek cardinal: convert to rdoc format and modify some examples
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/a845a97766
06:11 dalek cardinal: f200ead | (Kim, Daehyub)++ | README (2 files):
06:11 dalek cardinal: convert to rdoc format and modify some examples
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/f200ead6e1
06:11 dalek cardinal: c4f4a68 | (Kim, Daehyub)++ | /:
06:11 dalek cardinal: Merge branch 'master' of github.com:lateau/cardinal
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/c4f4a68e7c
06:11 dalek cardinal: 7ac6cd1 | (Kim, Daehyub)++ | README.rdoc:
06:11 dalek cardinal: typo
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/7ac6cd1bd9
06:11 dalek cardinal: a2000f5 | (Kim, Daehyub)++ | README.rdoc:
06:11 dalek cardinal: typo
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/a2000f5b76
06:11 dalek cardinal: 6b60c2c | (Daehyub Kim)++ | README.rdoc:
06:11 dalek cardinal: modify build section
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/6b60c2c2b5
06:11 dalek cardinal: 9ce1198 | (Daehyub Kim)++ | Rakefile:
06:11 dalek cardinal: block in top error in ruby1.9
06:11 dalek cardinal:   Problem:
06:11 dalek cardinal:     * a block tried to return false in top level Rakefile:276
06:11 dalek cardinal:     * it can be running with 1.8 but it will be aborted with 1.9
06:11 dalek cardinal:   Fix:
06:11 dalek cardinal:     * modify 'return' to 'abort'
06:11 dalek cardinal:     * add some config error messages
06:11 cotto oh my
06:11 dalek cardinal:     * some paths is in $location hash now for easy maintenance
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/9ce11986a3
06:11 dalek cardinal: 2737c76 | dukeleto++ | / (4 files):
06:11 dalek cardinal: Merge pull request #4 from lateau/master.
06:11 dalek cardinal:
06:11 dalek cardinal: Add rake tasks and convert README to rdoc
06:11 dalek cardinal: review: https://github.com/parrot/​cardinal/commit/2737c76041
06:11 dukeleto well, then.
06:12 cotto I guess we can call cardinal "not dead".
06:12 dukeleto cotto: indeed.
06:13 dukeleto cotto: now I can get to M0 hacking :)
06:14 cotto woot
06:15 cotto dukeleto, I'm realizing that the dependency between the offsets in the directory segment and those in the chunk directory make the binary format a little trickier to generate than it needs to be.  Thoughts?
06:17 cotto The information in the chunk directory is redundant.  If it doesn't make someone's life easier, there's no reason for it to exist.
06:17 dukeleto cotto: i say we kill the redundancy, then.
06:17 cotto wfm
06:18 dukeleto cotto: also, i think we need an "m0 bytecode version"
06:18 dukeleto cotto: even if it only changes 1, ever, it would be nice to know which M0 code is version 0 and which is version 1
06:18 dukeleto cotto: for instance, if we add an op in a year or two
06:18 dukeleto cotto: it would be nice to differentiate between the old M0 and the new M0
06:19 dukeleto s/changes 1/changes once/
06:19 dukeleto cotto: thoughts?
06:19 cotto gone
06:19 dalek parrot/m0-spec: 0e933dc | cotto++ | docs/pdds/draft/pdd32_m0.pod:
06:19 dalek parrot/m0-spec: nuke chunk directory segment from m0 spec
06:19 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/0e933dc603
06:21 cotto dukeleto, I'm resistant to the idea, but only because it implies that we expect M0 to change.  If we enforce that it'll only do so under unusual circumstances, it doesn't sound like a bad idea.
06:21 cotto s/enforce/emphasize/
06:23 birdwindupbird joined #parrot
06:23 dukeleto cotto: sure. I don't *want* to add an op to M0 unless there is a really good reason.
06:23 dukeleto cotto: but adding a version gives us insurance against it, and is seemingly free.
06:23 dukeleto cotto: not insurance against it, but insurance for dealing with it properly
06:24 cotto dukeleto, you're quite correct.  We don't want to be up a creek if adding an op becomes a really good idea.
06:24 dukeleto cotto: that is what I am thinking
06:24 dukeleto cotto: adding a version takes up one byte and is essentially free. It could save us a lot of trouble in the future.
06:25 dukeleto cotto: i assume that things like the GC or JIT may want an op in the future, for performance reasons. But we should only do that if the WIN is quite big.
06:25 cotto dukeleto, go for it!
06:25 sorear how certain are you that the current design of m0 is correct?
06:25 dukeleto cotto: hokey dokey
06:25 dukeleto sorear: define correct
06:26 sorear is there any chance that when you try to actually use it, you'll discover a critical flaw that requires a change?
06:26 dukeleto sorear: can one say that the design of perl 6 is correct? Can you say that the design of any language is correct?
06:26 dukeleto sorear: well, we are deep into a series of prototypes
06:26 cotto sorear, that's what we're starting to do now, for just that purpose
06:26 dukeleto sorear: each prototype solves more of that problem you speak of
06:27 dukeleto sorear: our current prototype will actually parse M0 source code and generate binary bytecode
06:27 cotto well, continuing
06:27 dukeleto sorear: so if anything is cattywompus, we should know soon.
06:27 dukeleto sorear: you ask a good question, I just like to get all meta and crap
06:29 dukeleto cotto: i am thinking of adding something like ".version 0" before the first chunk, and that will be represented by a single byte, perhaps the initial byte, in the binary representation
06:29 dukeleto cotto: sound reasonable?
06:29 dukeleto cotto: i don't quite care where that info goes in the binary representation
06:30 dukeleto cotto: is there a better place other than the initial byte? Seems reasonable. Then you can just parse the first byte and know which version you are dealing with
06:30 cotto dukeleto, I'd put it after the magic number, but that sounds fine
06:30 dukeleto cotto: sure, I was thinking about the magic number. Do we have one?
06:31 cotto I was just going to copy/tweak what we use for pbc
06:31 cotto haven't done it yet
06:32 dalek parrot: 2d5cedf | dukeleto++ | tools/dev/merge_pull_request.pl:
06:32 dalek parrot: Fix a braino in merge_pull_request.pl
06:32 dalek parrot: review: https://github.com/parrot/parrot/commit/2d5cedf31b
06:33 cotto those brainographical errors are rough
06:34 mtk left #parrot
06:35 dukeleto yeah, that bug was subtle because it was syntactically correct, but I accidentally overwrote the wrong variable
06:35 dukeleto brainographical is a great word
06:39 UltraDM joined #parrot
06:40 dukeleto UltraDM: howdy
06:40 mtk joined #parrot
06:42 dukeleto cotto: is there a bug in the "metadata segment" section of M0? should line 465 read : "line" is 23
06:42 dukeleto cotto: instead of: "line" is 3
06:43 UltraDM hi dukeleto
06:44 cotto dukeleto, good catch
06:45 cotto dukeleto++
06:45 mj41 joined #parrot
06:45 woosley left #parrot
06:46 dukeleto UltraDM: welcome to #parrot. What can we help you with?
06:46 UltraDM dukeleto, thanks, nothing for the moment, I'm just lurking
06:46 dukeleto UltraDM: sounds good. Let me know if you want to unlurk :)
06:47 UltraDM sure, thanks :P
06:48 jsut_ joined #parrot
06:48 cotto We encourage unlurking.
06:52 jsut left #parrot
06:56 dalek parrot/m0-prototype: d29c900 | cotto++ | t/m0/m0bgen.t:
06:56 dalek parrot/m0-prototype: add a minimal m0b generation framework
06:57 dalek parrot/m0-prototype:
06:57 dalek parrot/m0-prototype: The code generates superficially valid M0 bytecode, but doesn't contain
06:57 dalek parrot/m0-prototype: any meaningful code.  The purpose of this code is to have a reliable way
06:57 dalek parrot/m0-prototype: of generating verifiable M0 bytecode without having to hand-hack binary
06:57 dalek parrot/m0-prototype: files.  Hopefully this will be a better alternative once it's working.
06:57 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d29c90063d
06:57 dalek parrot: 5ca66d3 | fperrad++ | t/pmc/boolean.t:
06:57 dalek parrot: [PMC] add test for is_equal for Boolean PMC
06:57 dalek parrot: review: https://github.com/parrot/parrot/commit/5ca66d3259
06:58 cotto fperrad++
06:58 cotto and dukeleto++ for agitating
06:58 fperrad joined #parrot
07:02 dalek parrot/m0-prototype: 5bba114 | cotto++ | t/m0/m0bgen.t:
07:02 dalek parrot/m0-prototype: add TODOs for some of the more gaping holes in m0b generation tests
07:02 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/5bba114cb9
07:03 cotto dukeleto, before I pass out, do you think it's a good idea to use 4-byte values on all platforms or should we do what pbc does and be more platform-specific?
07:04 dukeleto cotto: hmmm. hard to say. what are we trying to optimize for?
07:05 cotto dukeleto, not crippling performance on some platforms
07:06 dukeleto cotto: what exactly does PBC do to help that?
07:06 cotto I think opcode_t is different on x86 and x86_64
07:07 dukeleto cotto: i think we should think about this a bit more, and probably ask on parrot-dev for enlightening comments
07:07 dukeleto cotto: i would need to sleep on it
07:08 dalek parrot/m0-spec: 7510a95 | dukeleto++ | docs/pdds/draft/pdd32_m0.pod:
07:08 dalek parrot/m0-spec: Fix an error in the example about M0 metadata
07:08 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/7510a95781
07:11 cotto dukeleto, that's exactly what I'll do.
07:11 cotto dukeleto, don't forget to add a version number
07:11 cotto 'night
07:11 SHODAN joined #parrot
07:12 dukeleto cotto: on it
07:13 dalek parrot/m0-prototype: 3ccfae3 | dukeleto++ | src/m0/m0_assembler.pl:
07:13 dalek parrot/m0-prototype: Add the current list of m0 opcode numbers to the DATA section of the assembler
07:13 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/3ccfae343d
07:16 cotto bam
07:20 dalek parrot/m0-spec: ef39d4b | dukeleto++ | docs/pdds/draft/pdd32_m0.pod:
07:20 dalek parrot/m0-spec: Add a description of the M0 version number and add info to the implementation section
07:20 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/ef39d4b898
07:53 jrt4__ left #parrot
08:12 ingy dukeleto++ # Acmeist
08:14 ShaneC joined #parrot
08:15 dukeleto ingy: ;)
08:17 ingy dukeleto: does jitterbug crossever with testml at all?
08:18 ingy *crossover
08:24 bacek ~~
08:25 birdwindupbird left #parrot
08:57 UltraDM left #parrot
09:36 rhebus joined #parrot
09:41 contingencyplan left #parrot
10:05 Coke left #parrot
10:05 PacoLinux left #parrot
10:05 ambs joined #parrot
10:05 Coke joined #parrot
10:18 fperrad_ joined #parrot
10:22 fperrad left #parrot
10:22 fperrad_ is now known as fperrad
10:25 moritz trac doesn't know about version 3.3.0
10:26 moritz could somebody please fix that? KTHXBYE
10:27 dalek TT #2104 created by moritz++: recent parrot changes broke rakudo
10:27 dalek TT #2104: http://trac.parrot.org/parrot/ticket/2104
10:34 woosley joined #parrot
10:44 PacoLinux joined #parrot
11:24 fperrad_ joined #parrot
11:27 fperrad left #parrot
11:27 fperrad_ is now known as fperrad
11:36 UltraDM joined #parrot
11:52 moritz http://trac.parrot.org/parrot/ticket/2104 <-- does that mean that rakudo is using NULL instead of PMCNULL in its C source files?
11:57 Patterner left #parrot
11:57 Psyche^ joined #parrot
11:57 Psyche^ is now known as Patterner
11:58 lucian joined #parrot
12:01 lateau joined #parrot
12:21 lucian_ joined #parrot
12:26 lucian left #parrot
12:34 bubaflub joined #parrot
12:47 whiteknight joined #parrot
12:49 whiteknight good morning, #parrot
12:50 moritz good morning whiteknight
12:51 moritz whiteknight: in case you haven't backlogged, http://trac.parrot.org/parrot/ticket/2104 describes the cause or trigger for the rakudo bugs
13:00 hudnix joined #parrot
13:01 bluescreen joined #parrot
13:10 ambs left #parrot
13:16 lateau left #parrot
13:20 rhebus left #parrot
13:34 whiteknight moritz: yes, I saw that
13:34 whiteknight moritz: I need to research that commit to figure out why it would be so troublesome for Rakudo
13:35 whiteknight I have to suspect that somewhere Rakudo is relying on NULL instead of PMCNULL/STRINGNULL
13:36 moritz I've found some instances of that
13:36 PerlJam whiteknight: could be.  There are lots of places in Rakudo that use NULL
13:36 moritz not too many
13:36 PerlJam (only some of which deal with PMCs)
13:37 moritz oh
13:37 whiteknight in terms of PMCs, you should always be using the PMC_IS_NULL macro instead of "if (foo == NULL)"
13:37 moritz src/binder/bind.c has lots of
13:37 whiteknight again I'm not certain that's the problem, but I suspect it
13:37 moritz static STRING *ACCEPTS          = NULL;
13:37 moritz but you can't change that to STRINGNULL
13:37 whiteknight why not?
13:37 moritz because then the compiler complains that the initialization is not constant
13:38 whiteknight oh right.
13:38 woosley left #parrot
13:38 whiteknight bummer
13:39 whiteknight I have no problem pulling that commit back out. We can work on it later
13:39 whiteknight If anybody with a commit bit wants to pull it out into a branch for further testing, that would be great. I can't do it myself right now
13:43 moritz you mean revert in master, and re-apply in a branch?
13:46 whiteknight if that's not too hard, yes
13:46 moritz not hard at all
13:47 whiteknight We don't want that commit to disappear, we just want it somewhere besides master so we can study it more
13:47 lucian_ left #parrot
13:47 moritz pushed to pmcnull_annotations
13:48 benabik left #parrot
13:48 whiteknight awesome. moritz++
13:49 moritz I'll comment on the ticket, and write a mail to the mailinglist
13:49 whiteknight thanks!
13:51 dalek parrot: 1149c70 | moritz++ | / (2 files):
13:51 dalek parrot: Revert "now that PMCNULL is not NULL, we can update function annotations"
13:51 moritz who can add version tags to trac? 3.3.0 is missing
13:51 dalek parrot:
13:52 dalek parrot: This reverts commit c1f77f7eb90041468c3b13f5b48ae2ca1d1c37a5.
13:52 dalek parrot: It broke several rakudo spectests, see TT #2104
13:52 dalek parrot: review: https://github.com/parrot/parrot/commit/1149c70960
13:55 lucian joined #parrot
14:11 whiteknight moritz: I'll look at it
14:11 moritz ++whiteknight
14:12 whiteknight under the milestone heading?
14:13 moritz ticket, 'Change Properties', the "Version:' field
14:15 whiteknight fixed
14:15 moritz whiteknight++
14:19 mtk0 joined #parrot
14:19 mtk left #parrot
14:33 bubaflub left #parrot
14:35 lucian_ joined #parrot
14:39 lucian left #parrot
14:41 Andy joined #parrot
14:59 benabik joined #parrot
15:01 bubaflub joined #parrot
15:07 contingencyplan joined #parrot
15:07 theory joined #parrot
15:10 moritz is there an easy way to create function in src/binder/bind.c in rakudo that's called on startup?
15:11 whiteknight what do you mean, like a C-level function?
15:11 moritz yes
15:12 whiteknight in your compiler driver, make an NCI wrapper PMC for it. then invoke that
15:12 whiteknight that's the best I can think about
15:12 * moritz abandons the idea
15:13 whiteknight alternative would be a custom dynop that calls that function
15:13 rhebus joined #parrot
15:14 whiteknight we have things like exit handlers, though they aren't used often and are probably broken
15:15 whiteknight we don't have anything like startup handlers
15:15 whiteknight although if you aren't afraid of C and don't mind writing your own fakecutable fronend, you could probably insert some custom logic to run after the interp is created but before code is executed
15:16 * moritz is afraid of C
15:16 moritz I was looking for a quick-ish fix for this STRINGNULL initialization thing
15:16 dukeleto ~~
15:16 dukeleto startup handlers sound pleasant
15:17 dukeleto moritz: why did the STRINGNULL commit need to be reverted?
15:17 whiteknight dukeleto: broke rakudo
15:18 moritz dukeleto: please read the ticket and the mail to the mailing list
15:18 moritz and the commit message (it refers to the ticket)
15:19 dukeleto moritz: ah. I just woke up and haven't seen the trail of blood.
15:20 rohit_nsit08 joined #parrot
15:20 rohit_nsit08 hello #parrot
15:20 dukeleto rohit_nsit08: greetings
15:20 rohit_nsit08 dukeleto: hi
15:21 * moritz swings his battle axe
15:21 moritz hi rohit_nsit08
15:21 rohit_nsit08 coke_: ping
15:21 rohit_nsit08 moritz: hi
15:24 UltraDM left #parrot
15:30 * dukeleto gets on a train
15:31 plobsing_ moritz: parrot has a mechanism for running functions at loadtime of a dynamic library. if Parrot_lib_${libname}_load and/or Parrot_lib_${libname}_init exist, they will be executed.
15:32 rohit_nsit08 left #parrot
15:32 bluescreen left #parrot
15:41 rohit_nsit08 joined #parrot
15:49 lateau joined #parrot
15:49 lateau left #parrot
15:49 lateau joined #parrot
15:56 dod left #parrot
16:23 bubaflub left #parrot
16:24 cotto_work ~~
16:28 dukeleto plobsing_: is that documented anywhere?
16:36 mj41 left #parrot
16:37 benabik left #parrot
16:38 dodathome joined #parrot
16:46 coke_ .
16:47 rohit_nsit08 left #parrot
16:48 davidfetter joined #parrot
16:50 coke_ msg rohit_nsit08 sorry I missed you - if you can't find me on IRC, ping me on email. (I can give you my googlevoice # also for texts.)
16:50 aloha OK. I'll deliver the message.
16:51 lucian joined #parrot
16:51 dmalcolm joined #parrot
16:53 lateau left #parrot
16:54 lucian_ left #parrot
17:02 coke_ #ifdef HAVE_USR_INCLUDE_MALLOC_H
17:02 coke_ #  include "/usr/include/malloc.h"
17:02 coke_ #else
17:02 coke_ from src/gc/malloc.c - that should be include <>, not include "", methinks.
17:05 whiteknight no, <> is for standard library only
17:05 whiteknight that looks like a mechanism to allow a custom malloc replacement
17:05 coke_ how is "/usr/include" not stdlib?
17:06 whiteknight is that where stdlib includes are on all unixy systems?
17:06 PerlJam all the unixy systems I've ever used.
17:07 rohit_nsit08 joined #parrot
17:07 PerlJam Though I suppose there are some that look in /opt/include or something
17:07 coke_ one wonders why we're putting the path in at all there, and not just getting whatever the default malloc.h is. In any case, it came up because checkdepend.t is trying to find that header so it can scan it for deps.
17:07 whiteknight parrot used to ship with a custom version of malloc in src/gc
17:07 coke_ (and it's failing)
17:07 whiteknight I'm certain that line is somehow related to that
17:08 sorear whiteknight: bzzzt, fixincludes
17:08 whiteknight sorear: ?
17:08 sorear sometimes the correct stdlib headers are in /usr/local/lib/gcc/4.x.y/include
17:08 benabik joined #parrot
17:09 NotFound ~~
17:09 sorear generally when /usr/include/whatever uses gcc-incompatible syntax on "real" Unix systems with a vendor-specific cc
17:22 lucian left #parrot
17:23 bubaflub joined #parrot
17:34 dalek nqp/ctmo: 5e5c46f | jonathan++ | src/stage0/ (6 files):
17:34 dalek nqp/ctmo: Update bootstrap with latest changes.
17:34 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/5e5c46f3ba
17:34 dalek nqp/ctmo: d2f7759 | jonathan++ | src/pmc/dispatchersub.pmc:
17:34 dalek nqp/ctmo: Ensure DispatcherSub is properly initialized.
17:34 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/d2f775980e
17:39 davidfetter left #parrot
17:40 cotto_work http://www.fructoselang.org/ - compile a subset of Ruby to PHP
17:44 rohit_nsit08 left #parrot
17:44 rohit_nsit08 joined #parrot
17:46 ShaneC left #parrot
17:54 rohit_nsit08 left #parrot
18:00 benabik left #parrot
18:04 rohit_nsit08 joined #parrot
18:05 benabik joined #parrot
18:11 dalek winxed: r967 | NotFound++ | trunk/winxedst1.winxed:
18:11 dalek winxed: fix a problem when using multi return syntax and function arguments, Issue 23,
18:11 dalek winxed: whiteknight++
18:11 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=967
18:11 whiteknight NotFound++
18:12 NotFound whiteknight: Can you check the .* operator? I don't have any relevant example at hand.
18:13 whiteknight NotFound: I can when I get home.
18:19 whiteknight NotFound: yesterday soh_cah_toa was having some troubles with "make install" for Winxed
18:19 whiteknight the command was failing for him, I don't remember how
18:20 cotto_work That's no good.
18:21 NotFound It works for me right now,
18:22 ShaneC joined #parrot
18:23 NotFound Out of mem? Amazing.
18:28 mj41 joined #parrot
18:34 hercynium joined #parrot
18:48 Maddingu1 is now known as Maddingue
18:49 whiteknight I'm not sure I understand why people still work on GNU Hurd
18:50 benabik whiteknight: AFAICT, people still _argue_ about HURD.
18:50 benabik I'm not sure any work has been done on it in a long time.
18:53 coke_ whiteknight: that is a hilarious statement coming from someone on the parrot team. just fyi.
18:54 whiteknight I wouldn't consider the TODO list for parrot quite so monumental, and I wouldn't call our workforce quite so small in comparison to it
18:54 whiteknight benabik: apparently a bounty system was set up for Hurd, so people can donate money to facilitate development
18:54 whiteknight benabik: I have to assume there are developers who intend to receive money
18:55 PerlJam I'll take any money you want to throw my way  ;)
18:55 whiteknight and it looks like GNU Hurd is participating in GSoC
18:55 benabik whiteknight: I guess they abandoned the L4/Cyotos ideas?  When last I checked, they had gotten caught up in arguing about security and what kernel was better.
18:56 benabik I was fascinated by Hurd for a while...  Then I found MINIX.  Then I decided I don't have enough free time to make either really worth while.
18:57 whiteknight benabik: it looks to me like one guy is talking about moving it to viengoos, and the rest of people are still working on Mach
18:59 Coke left #parrot
18:59 PerlJam coke_: Are you saying that parrot is the new hurd?
18:59 Coke joined #parrot
19:01 ShaneC left #parrot
19:05 Coke__ joined #parrot
19:05 Coke left #parrot
19:07 whiteknight Hurd is an interesting concept but it doesn't really do much differently from linux, and has no hopes of ever catching up to the state of linux
19:07 whiteknight And I know RMS would love nothing more than to bury linux and dance on the grave, but that hardly seems like motivation
19:11 TiMBuS left #parrot
19:12 davidfetter joined #parrot
19:16 coke_ PerlJam: I was referring more to number of years under development without widespread adoption.
19:19 PerlJam coke_: as long as you don't think we're doomed to repeat history or something.
19:20 coke_ I refuse to speculate the exact nature of our doom.
19:21 cotto_work We have a number of options to choose from.
19:21 * cotto_work goes out for noms
19:29 dukeleto who groks set_hll_global ?
19:30 dukeleto Rakudo uses it to set their $*PROGRAM_NAME (which is equivalent to $0 in Perl 5)
19:30 atrodo whiteknight> hurd is a nice concept, and if someone sat down and really wrote out a well performing base, it could probably catch on some more
19:31 atrodo But, it appears no one cares about it enough to do anything
19:31 tadzik would you say that about Perl 6 too?
19:32 tadzik you actually could: a nice concept, but no one really wrote a well performing base
19:32 dukeleto seemingly, set_hll_global only creates read-only values
19:32 dukeleto which is suboptimal
19:32 dukeleto so I guess what I am asking is: how do I create writable global HLL variables?
19:35 TiMBuS joined #parrot
19:35 bubaflub left #parrot
19:37 benabik left #parrot
19:42 * dukeleto feels a little dirty every time he reads the source of the Namespace PMC
19:42 dukeleto seems like the set_hll_global finally boils down to set_pmc_keyed_str on the Namespace PMC, where everything gets cattywompus
19:43 whiteknight yeah, we really need to "fix" that with fire
19:44 whiteknight NameSpace is a travesty
19:47 dukeleto a travesty of travesties
19:49 whiteknight it really is as bad as can be. I can't think of a worse way to store that kind of information
19:51 whiteknight I don't want to put in a deprecation notice for it until we have a superior design lined up.
19:51 coke_ \o/
19:51 whiteknight And I suspect it's not just a matter of superior design, but we might actually have to change the PIR interface, which I'm sure people will not be happy about
19:52 jnthn__ whiteknight: new nqp has stopped using NameSpace. Rakudo will very soon.
19:52 coke_ dukeleto: do you have a small PIR file that demonstrates the readonly problem?
19:52 coke_ jnthn__: are you rolling your own namespace?
19:52 jnthn__ coke_: "namespace"
19:52 whiteknight jnthn__: I don't know if that's one fewer thing to worry about, or whether it's depressing that our biggest user has been driven away from it
19:53 jnthn__ The long story short is that Perl 6 doesn't really have a concept of global packages.
19:53 jnthn__ Every time you start compiling a new compilation unit it needs a completely fresh view
19:54 jnthn__ Anyway, we don't actually need namespaces per se in Perl 6. The stash just hangs off the package.
19:54 jnthn__ where by package I mean type object
19:54 jnthn__ The other issue is that Perl 6 wants to have lexical packages
19:55 eternaleye_ is now known as eternaleye
19:55 jnthn__ It wasn't so much that Parrot's NameSpace PMC drove me away. It was more that trying to do the semantics Perl 6 actually wants using it woulda been more code and hassle than just hanging a hash off the type object.
19:56 jnthn__ And then things like lexical packages just Magically Work because the type object is installed as a lexical rather than in some other package.
19:57 jnthn__ Anyway, I didn't mean it as criticism of Parrot, I meant it in the "one less thing to worry about".
19:58 whiteknight jnthn__: I *do* mean it as a criticism of Parrot. Our NameSpace PMCs are hideous
19:58 jnthn__ whiteknight: I did end up inside there some times before, and yes, there's some nastiness there for sure.
19:59 rohit_nsit08 left #parrot
19:59 whiteknight they're another component which has never been designed. They've been tweaked and added to organically over the years, and the result is quite discouraging
20:00 jnthn__ whiteknight: But that wasn't why I moved away from using it. If it was a case of "just needs some fixing up" I would have been inclined to try and do so.
20:00 whiteknight oaky
20:00 whiteknight so that's good to know that it's not actively driving away users
20:01 jnthn__ I suspect the model Parrot uses for namespaces is probably fine for many language's needs.
20:01 jnthn__ Even if the implementation is crufty.
20:01 whiteknight Even the model needs major fixing. It's too magical
20:01 jnthn__ I think the way that classes and namespaces mix in Parrot just needs to die, but I"ve said that many times before. :)
20:02 whiteknight jnthn__: On a related note, I wanted to talk to you about 6model.
20:02 jnthn__ whiteknight: OK :)
20:02 jnthn__ Any particular aspect of it?
20:02 whiteknight The task that was next up on my todo list has been shelved, so the next big thing in my sights is to get 6model into Parrot
20:02 jnthn__ Aha
20:03 whiteknight I was thinking I had a few months before that, but the schedule has changed and I don't have anything else ready for immediate coding
20:03 whiteknight jnthn__: So is now a good time to begin that work?
20:04 whiteknight I wouldn't want to be chasing it around if 6model were still in a big state of flux
20:05 jnthn__ It's slushy, more so in some places than others.
20:05 jnthn__ Some things haven't changed in months.
20:05 jnthn__ Some things are still kinda missing or need tweaking.
20:06 jnthn__ I don't expect the underlying design to change.
20:06 jrt4__ joined #parrot
20:06 jnthn__ But I know that the Rakudo-on-6model effort that I'm going to be starting on this week will drive some changes.
20:06 jnthn__ I expect that to for the large part be extension though.
20:08 jnthn__ whiteknight: I think now is probably fine to start planning out the work and working out the various stages that it would go through.
20:08 whiteknight jnthn__: okay, so Rakudo is moving to 6model starting this week?
20:08 jnthn__ The *hard* transition will be how PMCs and 6model go together. At the moment 6model is encapsulated inside some PMCs. But really it wants to be more primitive than them.
20:08 jnthn__ whiteknight: I'm starting the work on moving it to 6model this week, yes.
20:09 jnthn__ I'm just about done in NQP.
20:09 whiteknight jnthn__: okay, I'm going to start digging into the code and putting a real plan together
20:09 jnthn__ whiteknight: OK, sounds good.
20:09 whiteknight I won't start actual coding for some time
20:09 jnthn__ whiteknight: First is probably to understand what 6model is/does and, more importantly, doesn't do.
20:10 jnthn__ whiteknight: The core is *really* minimal.
20:10 whiteknight yeah
20:11 whiteknight I suspect we are going to need some major deprecation boundaries, especially for bits of the object model that we do not want to cargo cult into the new system
20:11 jnthn__ I suspect you're going to want to write some "default" meta-objects for Parrot users too.
20:12 whiteknight I'm planning to get 6model in to Parrot in parallel with our current mop. That implementation likely will disallow inheritance from built-in PMC types until we can get that mechanism sorted out correctly
20:12 whiteknight jnthn__: yes. I'm hoping to do some of that work in parallel with the JS and Python3 compiler projects for GSoC
20:12 jnthn__ OK
20:12 jnthn__ Because in the core 6model doesn't know what, e.g. a class is. :)
20:12 whiteknight right
20:13 jnthn__ I stand by my feeling that languages really should expect to write their own meta-objects at some point, out of the 6model building blocks. Just like we provide them a bunch of building blocks to do their grammar.
20:13 whiteknight in the general case that's not a bad idea, but Parrot can offer at least a handful of reasonable defaults
20:13 jnthn__ Right. :)
20:13 jnthn__ For its own internal stuff too.
20:13 whiteknight are meta-classes wrapped up in PMCs?
20:14 whiteknight if so, that provides a very natural way to subclass and provide a custom implementation
20:14 whiteknight As much as possible I like to insulate our users from C.
20:14 whiteknight We do the C so our users shouldn't have to :)
20:14 jnthn__ Yes, meta-classes are, but only because they're objects and objects are.
20:15 whiteknight okay
20:15 jnthn__ There's no "meta-class PMC"
20:15 whiteknight okay
20:15 jnthn__ There's just SixModelObject. That's the only thing that should ever be held in userspace
20:16 whiteknight one other question I want to ask you is about code synchronization. I think it would be a big shame if our implementation diverged too far from the Rakudo/NQP implementation of it
20:16 jnthn__ There are STable and REPR PMCs but they're infrastructural/internals.
20:16 whiteknight but I'm not sure what kind of reasonable mechanism we could use to keep them together
20:17 coke_ same thing we do today with nqp-rx^W2^W ?
20:17 jnthn__ whiteknight: I'd hope that the end result of this is that all that's in the NQP and Rakudo repo are meta-objects.
20:18 jnthn__ whiteknight: If you want the 6model core in Parrot, then there should be no need for two implementations.
20:18 whiteknight jnthn__: We definitely do want the core of it in Parrot, yes. But don't you need to keep something separate to support your other VM targets?
20:18 whiteknight I don't want to pull the rug out from under you
20:19 rohit_nsit08 joined #parrot
20:19 whiteknight jnthn__: and that raises another question, if we are going to move it into Parrot and you are going to be using our version directly from NQP/Rakudo, are you going to want to be personally involved in the migration work?
20:20 whiteknight I would hate to be making design decisions that negatively impact your needs
20:20 jnthn__ whiteknight: Nothing in the core implementation of 6model on Parrot is related to VM interop.
20:21 whiteknight okay
20:22 dukeleto coke_: it is a bug in Rakudo : http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=89704
20:22 jnthn__ The interop comes because 6model always has a concept of "create a type object" or "make an instance" or "find a method" on whatever VM it runs on.
20:22 dukeleto coke_: seemingly when Rakudo binds to a global with ":="
20:22 jnthn__ But that's just a "compiler switch"
20:23 jnthn__ e.g. the "abstraction layer" vanishes in the process of code generation.
20:23 jnthn__ whiteknight: And yes, I'd like to be involved.
20:23 whiteknight jnthn__: What I'm going to do now is read code like a madman, and start coming up with a detailed plan of attack. I'll run it past you before I start doing anything
20:23 jnthn__ whiteknight: I'm happy to answer questions, of course. And to explain things.
20:24 jnthn__ whiteknight: *The* headache file is knowhow_bootstrapper.c.
20:24 whiteknight We're obviously going to need at least one deprecation boundary before 6model becomes the default. Maybe more than one
20:24 jnthn__ *The* helpful file is sixmodelobject.h. :)
20:24 whiteknight ok, I'll keep that all in mind
20:25 jnthn__ Oh, at the moemnt NQP's multi-dispatcher is tied up in the 6model core. Ignore it.
20:25 whiteknight jnthn__: okay
20:25 jnthn__ (e.g. multi_dispatch.c is not really 6model core...)
20:26 whiteknight gotcha
20:26 whiteknight we can replace whatever we don't want
20:26 jnthn__ I've been working on starting to distill out what is 6model core and what is not.
20:26 whiteknight and make it pluggable
20:26 jnthn__ But am only part way there.
20:26 whiteknight Eventually I would like the MMD engine to be a pluggable PMC object, similar to how the NCI engine is
20:26 whiteknight and if we can have them selected by HLL namespace, all the better
20:26 whiteknight but that's a ways off
20:27 dukeleto coke_: i am actually not exactly where the bug is, but I am leaning towards the glue between parrot and rakudo, not parrot itself
20:27 jnthn__ Well, multi-dispatch is another area where I wonder if Parrot can actually provide a sane default that's useful for any language.
20:27 jnthn__ The fact that we have an invoke v-table and anybody can put any candidate selection logic they want in place is already very helpful.
20:27 whiteknight jnthn__: we do alright for now. But that's my point. MMD should be easy to plug in a replacement for
20:28 whiteknight we do have MultiSub, but it's a bit of a pain to use and subclass
20:28 dodathome left #parrot
20:28 dukeleto jnthn__: i think we just hope to provide a default that gets people 80% of the way there, and then they can tweak
20:28 whiteknight because it's not easy to call the underlying API functions from a subclass written on top of Parrot
20:28 whiteknight anyway, I have to run catch a train. I'll be back later tonight
20:28 jnthn__ nice journey o/
20:29 jnthn__ dukeleto: If "tweak" means "replace the candidate sorting algorithm", sure. :)
20:29 dukeleto jnthn__: yes :)
20:29 jnthn__ dukeleto: But that's the bulk of what MultiSub would do. :)
20:29 whiteknight left #parrot
20:37 Andy left #parrot
20:40 * cotto_work sees whiteknight and jnthn talking
20:40 cotto_work backscrolling time
20:46 rurban joined #parrot
20:53 SHODAN left #parrot
20:56 coke_ as a potential PVM user, tcl (out of the box) doesn't care about objects, but does wish namespaces were better.
20:57 coke_ (just as another data point)
21:03 cogno joined #parrot
21:12 rhebus left #parrot
21:13 cogno left #parrot
21:13 fperrad left #parrot
21:20 rohit_nsit08 left #parrot
21:22 rohit_nsit08 joined #parrot
21:24 ambs joined #parrot
21:32 ambs left #parrot
21:44 dalek winxed: r968 | NotFound++ | trunk/pir/winxed_compiler.pir:
21:44 dalek winxed: update installable compiler
21:44 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=968
21:47 dalek parrot/jit_prototype: 287cc0f | bacek++ | compilers/opsc/src/Ops/Compiler/Structs.pm:
21:47 dalek parrot/jit_prototype: Add more struct definitions
21:47 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/287cc0f489
21:47 dalek parrot/jit_prototype: 271ece1 | bacek++ | compilers/opsc/src/Ops/Compiler/Preprocessor.pm:
21:47 dalek parrot/jit_prototype: Add VTABLE_invoke preprocessing
21:47 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/271ece1cdb
21:47 dalek parrot/jit_prototype: 422545b | bacek++ | compilers/opsc/src/Ops/Compiler/Preprocessor.pm:
21:47 dalek parrot/jit_prototype: Refactor generating of VTABLE macros. Add PMC_data.
21:47 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/422545bb8a
21:49 jsut joined #parrot
21:50 mj41 left #parrot
21:51 Themeruta joined #parrot
21:52 NotFound left #parrot
21:52 cotto_work the robot is back online
21:52 cotto_work bacek++
21:54 jsut_ left #parrot
21:58 dalek parrot/jit_prototype: 44dca61 | bacek++ | t/jit/jitted.ops:
21:58 dalek parrot/jit_prototype: Add proper preamble to jitted.ops so LLVM will have a chance to generate more stuff used in jitter.
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/44dca61f69
21:58 dalek parrot/jit_prototype: 749b11c | bacek++ | runtime/parrot/library/LLVM/Builder.pm:
21:58 dalek parrot/jit_prototype: [llvm] Change Builder.call to accept Value instead of Function. This is required for generating pointer-to-function calls.
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/749b11caa4
21:58 dalek parrot/jit_prototype: f44ba3e | bacek++ | runtime/parrot/library/LLVM/Type.pm:
21:58 dalek parrot/jit_prototype: [llvm] Init struct.PMC and struct.STRING from LLVM bitcode.
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/f44ba3e191
21:58 dalek parrot/jit_prototype: accea3a | bacek++ | compilers/opsc/src/Ops/Compiler/Preprocessor.pm:
21:58 dalek parrot/jit_prototype: Remove debug _dumper
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/accea3ab4f
21:58 dalek parrot/jit_prototype: d57dac0 | bacek++ | runtime/parrot/library/LLVM/Constant.pm:
21:58 dalek parrot/jit_prototype: [llvm] Add Constant.int_to_ptr
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/d57dac06f9
21:58 dalek parrot/jit_prototype: a805ebc | bacek++ | compilers/opsc/src/Ops/JIT.pm:
21:58 dalek parrot/jit_prototype: Add NULL and NEED_CONTINUATION definisions
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/a805ebc9a7
21:58 dalek parrot/jit_prototype: 66dd433 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
21:58 dalek parrot/jit_prototype: Fix debug output
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/66dd433346
21:58 dalek parrot/jit_prototype: aea9fbe | bacek++ | compilers/opsc/src/Ops/JIT.pm:
21:58 dalek parrot/jit_prototype: Refactor generating of GEP to share common logic with just variable
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/aea9fbe0f7
21:58 dalek parrot/jit_prototype: 6716d63 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
21:58 dalek parrot/jit_prototype: Handle 'unnamed' function calls. E.g. 'foo->bar()' is parsed as (call (keyed_arrow 'foo 'bar) ())
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/6716d632c1
21:58 dalek parrot/jit_prototype: 0e82ef7 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
21:58 dalek parrot/jit_prototype: More checks and debug in handling pirop<=>
21:58 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/0e82ef7f35
21:59 dalek winxed: r969 | NotFound++ | trunk/winxedst1.winxed:
21:59 dalek winxed: a little cleaning of CallExpr.emit
21:59 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=969
22:04 hercynium left #parrot
22:36 lucian joined #parrot
22:46 davidfetter left #parrot
22:47 whiteknight joined #parrot
22:51 whiteknight Good evening, #parrot
22:51 whiteknight interesting PHP blog post, for anybody interested: http://blargh.tommymontgome​ry.com/2010/07/php-is-dead/
22:51 whiteknight "inflamatory" might be a better word
22:56 jsut_ joined #parrot
22:59 lucian whiteknight: well, he's right
22:59 lucian sadly, the php core team can't even write a parser
22:59 lucian i'm not saying i can, but they really screwed up
23:01 whiteknight PHP is an area where I sincerely believe Parrot could do a lot of good
23:01 whiteknight I mean, we already have integrated unicode support that costs nothing to utilize
23:01 whiteknight that's a huge benefit
23:01 jsut left #parrot
23:02 whiteknight We offer a much more flexible subroutine dispatch mechanism including invokable objects, callbacks, continuations and coroutines
23:02 lucian and it'd be hard to write a parser that fails as much as PHP does at expressions
23:02 whiteknight true
23:02 lucian but i don't think PHP on parrot will ever be popular
23:02 lucian PHP survives on deep, bug-for-bug compatibility
23:02 dalek nqp/ctmo: 76e0641 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
23:02 dalek nqp/ctmo: Start working towards fixup of roles. Gets us back the first two tests, though methods in roles are still totally broken.
23:02 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/76e06412b6
23:02 dalek nqp/ctmo: c69b201 | jonathan++ | src/ (2 files):
23:02 dalek nqp/ctmo: Fix issues relating to type parametricism of roles and compile time meta-object handling.
23:02 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/c69b2013b3
23:03 bacek_at_work ~~
23:04 whiteknight lucian: PHP as it is survives that way. If people want to start using something like PHP with more features and (eventually) fewer bugs, Parrot can deliver that
23:04 whiteknight a fork of PHP that had similar syntax, more features, and a standard library that somebody accidentally put forethought into, we can provide that
23:04 whiteknight without a huge team toiling for years
23:04 lucian but does anyone honestly want that?
23:05 lucian there are tons of clearly better languages, many of them very similar
23:05 whiteknight lucian: A person who knows PHP syntax better than any other language, but wants other things improved might
23:05 whiteknight lucian: if we build it, they might come
23:05 Themeruta I think the better way is to let all languages die, and people switch to winxed ;)
23:06 Themeruta is now known as NotFound
23:06 whiteknight Themeruta: :)
23:06 * cotto_work looks up from $dayjob to see something relevant.
23:06 lucian whiteknight: meh, i think that market is extremely small
23:07 whiteknight lucian: I'm sure somebody said the same thing about Ruby. Who needs another general purpose dynamic language when we already have several to choose from
23:07 lucian i don't think you're comparing comparables
23:07 whiteknight maybe not
23:08 NotFound I'm starting to see a pattern: most scipting languages are born without objects because "we don't need objects for simple programs" and later they add OO in convoluted ways.
23:08 cotto_work I much prefer adding it in convoluted ways from the start.
23:08 cotto_work or even in straightforward ways, but you can't always win
23:08 NotFound cotto_work: yeah, that's what I do.
23:09 lucian it's much better to have some experience with languages, and be able to decide what might be a better more complex
23:09 lucian s/a//
23:09 lucian but that's hard
23:10 davidfetter joined #parrot
23:10 dalek nqp/ctmo: df3640c | jonathan++ | src/ (2 files):
23:10 dalek nqp/ctmo: Do fixup with the vastly less evil assign rather than copy. Just happens to fix half of the broken multi-sub tests.
23:10 dalek nqp/ctmo: review: https://github.com/perl6/nqp/commit/df3640c394
23:11 NotFound The "who needs another X" is never a compelling argument.
23:12 lucian NotFound: i think it depends highly on the probable answer
23:12 NotFound A few years ago I wrote "another" free Z80 assembler just because all the other sucked.
23:13 lucian then the probable answer was a good argument for doing it
23:13 NotFound lucian: the answer usually is "me".
23:13 lucian that's a good answer
23:14 cotto_work NotFound++
23:14 NotFound And later, people that asked the question switched to mine.
23:14 lucian my point is that myself, i might find some use in a PHP4 & 5 on parrot, bug-for-bug compatible with zend
23:15 lucian but forking PHP as whiteknight suggested? not really
23:15 cotto_work That compatibility will be a bit^H^H^Hproblem though.  PHP's test suite is weak.
23:15 lucian PHP 6? not really either
23:15 lucian cotto_work: indeed. it's extremely unlikely that i'd try to do it :)
23:15 NotFound I can't answer that question, I've never seen the reason of php popularity.
23:16 cotto_work "We've got our alternative PHP 5.3 implementation passing all core tests.  Now for the other 90% of the job."
23:17 Tene People who are really invested in bug-for-bug compatibility wouldn't be the target market for an alternative implementation usually, I'd expect.
23:17 whiteknight lucian: okay, better example for you: would you believe there is a large and growing market for coffeescript, which is basically JavaScript with some improved properties?
23:17 lucian Tene: are there others in the PHP world?
23:18 lucian whiteknight: yes, because i've seen it
23:18 whiteknight lucian: my point exactly. If we tell people that we can do PHP, but better, there might just be a market for that
23:18 lucian Tene: they'll certainly want extensions, which'll be hard too. but that's a more general thing
23:18 whiteknight and if not, we're hardly in a worse situation than we are no
23:18 whiteknight now
23:18 lucian whiteknight: so you want to fork PHP. just a new language that's similar
23:19 lucian seeing PHP6 (and even 5) uptake, i'd be very skeptical of its success
23:19 cotto_work The problem with forking PHP is that you're forking PHP.
23:19 NotFound The marke will be all people that uses php as they only language (maybe with a little javascript).
23:19 cotto_work It's a one-edged sword.
23:20 lucian NotFound: those same people aren't even bothering with php5/6
23:20 whiteknight maybe PHP5 uptake is so low because they aren't fixing any of the warts, and are adding necessary new features at a snail's pace
23:21 Tene If you could integrate your existing PHP code base with other languages, however...
23:21 NotFound Looks like these days is easier to start a new language from scratch than to make a significant evolution of a existing one.
23:21 Tene That would be very appealing to people who are looking to migrate away from PHP
23:22 cotto_work I have to wonder what that guy's thinking when he says that PHP has the best function library of any language.  The only axes on which it'd be the best would be straightforwardness and ease of use.
23:22 Tene Fixing a few bugs from incompatibility with original PHP could be far less work than porting an entire codebase.
23:22 NotFound lucian: yes, but they may enjoy using other flavour of php for non web server usages.
23:22 lucian Tene: but then you'd need compatibility again
23:22 lucian cotto_work: i'd contest those as well. it's so incredibly inconsistent, it's not easy to use at all
23:22 lucian also broken
23:23 Tene Additionally, some companies have extensive test suites of their own.
23:23 lucian Tene: perhaps. this would depend on general uptake of alternative implementations
23:23 Tene The company I work for wouldn't have much trouble migrating to an alternative PHP implementation, due to their extensive testing infrastructure.
23:23 lucian there are a handful, i don't really know much about them
23:24 plobsing_ how much bug-for-bug compat is needed to run wordpress? a lightly massaged wordpress?
23:24 plobsing_ is now known as plobsing
23:24 Tene Additionally, bugs can be fixed as they're discovered.
23:24 * lucian shrugs
23:26 NotFound It will be funny to file bugs for not having bugs.
23:26 whiteknight I've never understood the "bugs are good and must be maintained" mentality
23:26 cotto_work NotFound++
23:26 lucian NotFound: you should see wine's bug tracker
23:26 whiteknight the perl5 world is absolutely terrible with that sentiment
23:26 lucian whiteknight: they all are. but it happens
23:26 whiteknight "don't fix anything! Don't take away our precious bugs!"
23:27 NotFound whiteknight: is easy, you just need to deny they are bugs.
23:27 lucian wine is a very good example
23:27 lucian and windows in general
23:27 cotto_work whiteknight: I know.  Then they get all mad when you add more.
23:27 lucian it's quite clear why the bug are important
23:27 lucian whiteknight: important pieces of software often get abandoned
23:28 lucian but i don't have to tell you this
23:28 whiteknight lucian: wine is hardly comparable, wine is supposed to be providing windows on linux. You only do that if you have the same behavior
23:28 lucian exactly. bug-for-bug
23:28 NotFound Given than in win32 there are functions that return BOOL and its documented return values are 0, 1, -1 and -2, is hard to tell what's a bug and what not.
23:29 whiteknight Wine has to always be what windows is. It's madness for new versions of PHP to be forced into preserving bugs and misfeaures of older versions
23:29 lucian whiteknight: it's madness for new versions of windows ...
23:29 whiteknight you make new versions precisely to remove misfeatures and add new features
23:29 whiteknight lucian: we don't have the ability nor the desire to fork windows
23:29 lucian even in the python world where people really like cleanliness, there was a little resistance to py3
23:30 whiteknight lucian: I suppose that 2-5 developers could make a workable PHP compiler in two weeks or less with Parot
23:30 NotFound lucian: Little?
23:30 whiteknight lucian: with new features too (although without a complete standard library)
23:30 lucian NotFound: yeah, most reasonable people were fine with it
23:30 dmalcolm left #parrot
23:30 NotFound lucian: Reasonable people are usually a small fraction of the user base of anything.
23:31 lucian NotFound: i can proudly say that is not the case with python, mostly
23:31 lucian visiting #python is enlightening. unreasonableness gets hammered out of people
23:32 NotFound lucian: I don't know much about the state of pyton but I've seen rants about slow adoption rate.
23:32 lucian whiteknight: if you could get wordpress/facebook on that, it might be interesting
23:33 whiteknight lucian: facebook uses their own custom compilers anyway, so that's hardly a worthy target. I bet we could support wordpress in a reasonable amount of time
23:33 lucian NotFound: yes, there were some. and it is somewhat slow, it's an incompatible language. but not too bad
23:33 whiteknight the hardest part, I'm sure, is going to be duplicating the necessary standard library and the DB interfaces
23:33 lucian whiteknight: facebook still use zend for much of their code. their compiler is for a small subset of php
23:34 lucian but wordpress.org (w/e the company is called) might be interested
23:34 cotto_work lucian: last I heard they used hiphop for the majority (if not all) of their php code.
23:34 bubaflub joined #parrot
23:34 whiteknight lucian: yeah, I think facebook uses hiphop for almost everything
23:34 lucian cotto_work: they do? oh well
23:35 whiteknight we need to do a lot of work on our performance. PHP does have decent performance, for all it's syntactic and semantic problems
23:35 lucian wordpress is sufficiently clean, well tested and centralised for something like this to work
23:35 lucian depends how you define decent, i guess
23:35 lucian if you consider CPython to have "decent" performance, sure
23:38 davidfetter would you consider it an indecent performance?
23:39 * davidfetter pictures scenes from "the producers"
23:39 lucian :)
23:40 lucian it's sufficient for most purposes, but embarrassing
23:42 whiteknight I want to start putting together a team for integrating 6model into Parrot
23:50 whiteknight It's going to be a collection of tasks, some of which are going to be very large
23:51 whiteknight cotto_work: you and I are going to have to powwow about that topic sometime soon. If we're going to replace the Parrot MOP, we should take the time to correct some of the bad decisions of the current design
23:52 cotto_work whiteknight: sure.  Unfortunately it seems that you're usually offline by the time I get home.
23:53 whiteknight cotto_work: yeah, I'm a total jerk like that
23:53 whiteknight cotto_work: you around at all this weekend?
23:53 Tene whiteknight: I'd love to help with that.
23:53 whiteknight Tene: I was hoping you would say that :)
23:53 cotto_work whiteknight: Sunday doesn't look bad.
23:54 whiteknight cotto_work: okay, I'll do my best to be online most of Sunday. Mosey in whenever you have time
23:54 Tene whiteknight: I say a lot of things.  Historically, they haven't been well-correlated with actual work.
23:54 cotto_work whiteknight: deal
23:54 whiteknight I'll use the remainder of the week to start fleshing out a basic plan
23:55 cotto_work whiteknight: ok
23:58 cotto_work whiteknight: alternatively I could do a weekday morning pretty easily.
23:58 cotto_work *alternately
23:58 whiteknight those are harder for me, but I usually do sign online as soon as I get to work. I get in some mornings around 8AM EST
23:59 Tene I'm pretty sure I was somehow mixing levels and had skewed abstractions in my ruby 6model work, is why I was seeing problems there.  I need to actually write up a design separately, and then come back to it.

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

Parrot | source cross referenced