Parrot 4.4.0 "Banana Fanna Fo Ferret" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 15 May 2012.
00:07 cotto joined 00:09 atrodo joined 00:26 brambles joined 00:39 jtpalmer joined 00:43 autark joined 01:07 aloha joined
dalek rrot/whiteknight/io_cleanup1: 4438708 | Whiteknight++ | / (2 files):
Remove buffer parameters from the io_vtable routines. Buffering will be handled transparently, and the buffer will call the vtables (not the other way around). Implement a rough draft of some of the new buffering routines. These prototypes use a circular buffer algorithm instead of a memcpy-based floating queue.
01:35
rrot/whiteknight/io_cleanup1: de2cb8d | Whiteknight++ | src/io/buffer.c:
Remove some old cruft which isn't worth saving in buffer.c. The rest of the stuff is kept mostly for reference, and will be up-converted
rrot/whiteknight/io_cleanup1: 5b0c2c6 | Whiteknight++ | src/io/ (2 files):
Move API functions out of core.c into api.c where they belong. If the function is public and IO-general-purpose, it belongs in api.c
rrot/whiteknight/io_cleanup1: fd1ab97 | Whiteknight++ | src/io/ (6 files):
Rename a few files. Add a new file for the StringHandle vtables. Start tweaking some stuff
01:41 bacek_at_work joined
kid51 msg whiteknight let me know if any of your branches needs particular testing 01:59
aloha OK. I'll deliver the message.
01:59 Khisanth joined 02:12 benabik joined 03:06 JimmyZ joined
JimmyZ speak of jit, libjit also mentioned parrot 03:06
www.gnu.org/software/dotgnu/libjit-....html#SEC1 03:07
03:42 kurahaupo joined
aloha (parrot/parrot) Issues closed : 700 (Expand note about rebaseall in README_cygwin.pod) by gerdr : github.com/parrot/parrot/issues/700 04:24
dalek rrot/ayardley/pod_DESCRIPTIONS: 93841d7 | alvis++ | t/codingstd/240_files_without_DESCRIPTION.log:
Add a log of all of the files which fail 'prove -v t/codingstd/pod_description.t'.
04:58
rrot/ayardley/pod_DESCRIPTIONS: 6470085 | alvis++ | / (2 files):
Update to include a DESCRIPTION and some additional information on how to resolve various problems to close issue #700.
rrot/ayardley/pod_DESCRIPTIONS: 04fefe7 | alvis++ | README_cygwin.pod:
Minor fixes.
rrot/ayardley/pod_DESCRIPTIONS: 7329f35 | alvis++ | compilers/data_json/JSON_README.pod:
Update with DESCRIPTION and fixed a typo.
rrot/ayardley/pod_DESCRIPTIONS: 70fd3ae | alvis++ | compilers/data_json/data_json.pir:
Update with DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 210a5cf | alvis++ | compilers/pct/README.pod:
Update with DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 6e498f2 | alvis++ | compilers/pge/PGE.pir:
Update with DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: a733ef8 | alvis++ | compilers/pge/PGE/Exp.pir:
Update with DESCRIPTIONS
rrot/ayardley/pod_DESCRIPTIONS: 5abc3b7 | alvis++ | compilers/pge/PGE/OPTable.pir:
Update with DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 5eb2f97 | alvis++ | compilers/pge/PGE/Perl6Regex.pir:
Update with DESCRIPTION
rrot/ayardley/pod_DESCRIPTIONS: 7377fc8 | alvis++ | compilers/pge/README.pod:
Update with DESCRIPTION and a few extra bits.
rrot/ayardley/pod_DESCRIPTIONS: 9fb2f11 | alvis++ | t/codingstd/240_files_without_DESCRIPTION.log:
Updated log.
05:01 nbrown joined 06:06 fperrad joined 06:46 he joined 07:09 fperrad_ joined 07:16 brrt joined 07:19 fperrad joined 07:44 kjs joined 08:22 lucian joined 08:56 kurahaupo joined 09:15 schm00ster joined 09:23 brambles joined 09:24 kjs joined 09:27 brambles joined 09:30 brambles joined 10:46 mtk joined 10:56 kjs joined 11:11 JimmyZ joined 11:19 brrt joined 11:48 benabik joined 11:52 brrt joined 12:09 whiteknight joined
whiteknight good morning, #parrot 12:09
brrt good afternoon 12:26
12:26 kjs joined 12:31 brrt joined
JimmyZ good evening 12:33
whiteknight hello brrt, JimmyZ. How are you two doing today? 12:35
brrt moody 12:42
found out that figuring out which apache install you have can be... tricky
12:42 dadada joined
whiteknight ouch. Is it something we can put together a script for and automate? 12:42
dadada hey 12:43
whiteknight hello dadada
brrt in theory
dadada jus looked at winxed repo to see what a compilar written with parrot tools is like, but I was surprised to see cpp code seems to be the main part?
brrt in practice, its... well, tricky :-)
dadada I beg pardon for my typos :-) 12:44
brrt but, i did make a makefile + configure.pl that works for me
dadada I mean this github.com/NotFound/winxed/blob/ma...xedst0.cpp
I thought the compiler had to be written in PIR/NQP 12:45
12:46 bluescreen joined
whiteknight dadada: winxed is written in winxed itself. cpp is just used for the first bootstrap stage 12:46
a subset of the language is implmented in C++, then stage 1 and stage 2 are written in winxed itself 12:47
dadada whiteknight: that subset is 7100 lines, that's a lot IMHO
whiteknight dadada: once you have Parrot and the bootstrapped files around, you never need to use the C++ again. I've never used it myself except to build Winxed 12:48
dadada so could I write a compiler in python too ?
whiteknight yes
dadada already?
whiteknight we don't really have much of a Python presence right now
But yes, we've had projects in that past that used existing compilers to try and bootstrap a python compiler for Parrot
I have a project that does the same thing with JavaScript, attempts to bootstrap from node.js 12:49
dadada so you can't use the regular python interpreter as iis? 12:51
is
whiteknight what do you mean?
brrt wonders what you mean by that statement
dadada I mean like you used gcc or something to compile cpp files that would generate a compiler for winxed 12:52
whiteknight yeah, you can definitely do that too
dadada then there are "bindings" for python or how does it work? 12:53
12:54 PacoAir joined
whiteknight There are a few possible approaches. The most straightforward would be to have a Python compiler that output Parrot bytecode for Parrot to run 12:54
brrt i assume you want to write a compiler for language x in python?
whiteknight dadada: Then you use that compiler to compile itself, and you have a Python compiler running on Parrot written in Python
a simple bootstrap
dadada brrt: yes 12:55
whiteknight Or, you skip that last step and run your compiler off the Python interp forever. That's cool too
dadada why compile to bytecode, I thought compiling to PIR would be the idea 12:57
brrt the difference between bytecode and pir is not great 12:58
dadada is there anything in compiler tools that makes it possible to share common language features, as to not reimplment for every language, as in the syntax might be different, but a reference is still a reference and whatnot, I mean, I fear I've to reinvent the wheel too much 13:01
some kind of high-level API for that kind of stuff, PIR seems low-level
13:01 kjs joined
dadada the grammar is obviously 13:02
not what I mean here, that's already abstracted by the compiler tool I understand
whiteknight dadada: We have a library called PCT that currently deals with AST and PIR generation. We have another project PACT which will do that and more, but isn't ready yet 13:04
dadada whiteknight: but that library you already have is/or can be made accessible from python like a first clas citizen, right? 13:06
class
whiteknight yes
dadada :-)
what's holding PACT back?
whiteknight it just got planned, really. benabik is working on it this summer for GSoC 13:07
well, he's working on specific parts of it
13:07 Psyche^ joined
benabik The thing holding PACT back is scope and tuits. :-D 13:07
GSoC is giving me tuits, but the scope means it won't be fully complete.
dadada can you give me a link to the planning?
benabik github.com/parrot/PACT/ 13:08
Github helpfully puts the README on the front page. There are more details under the docs/ directory.
whiteknight dadada: You interested in getting involved somewhere? If you're wanting to work on a python compiler for Parrot there are a few other developers around here who might want to team up 13:10
dadada that reads good, is exactly what I'm looking for (except not being huge fan of javascript like languages ... but you have to bite some bullets heh)
whiteknight: well, my goal really is to write a language of my dreams and I'm trying to find the smoothest path to that, but if that's not there yet, I might have to wait until a few other people hopefully have laid some groundwork in a few years :-( 13:11
and I'm just generally interested in the subject 13:12
whiteknight okay, cool
kjs dadada: there's also a very exciting new language in development for parrot's new internal architecture :-) 13:14
implemented in C though, not PCT.
dadada benabik: did google accept the project? 13:17
benabik dadada: PACT? Yes, I'm implementing the lowest layer and a basic assembly language this summer. 13:18
dadada great, good luck, it's a pitty this is all still in the early stages :-(
whiteknight dadada: You should hang around and get involved. That way you know that the tools do what you need them to when it's time to implement your language 13:20
dadada why isn't PIR a good target? it says in the README too that the bytecode sometimes changes? I thought PIR was invented to not have to deal with true bytecode
whiteknight dadada: think of PIR as the assembly language and bytecode as the machine code. The one is just a textual representation of the other, with a few caveats 13:21
dadada: We have certain abstractions over PBC generation, and you can generate code in a language like Winxed which is a more stable abstraction over PIR
dadada: There are lots of options, it just depends on your particular needs 13:22
dadada whiteknight: maybe, I'll definitely check on the progress once in a while
whiteknight okay, awesome
dadada ever thought of holding a fundraiser to fund a few devs for a few months, let them live together like they did when the Blender project produced some short animated movies 13:26
pushing the project forward by a few years in a few months 13:27
lots of buzz around crowdfunding these days 13:31
13:34 JimmyZ joined
whiteknight yes, crowdfunding opportunities would be interesting 13:34
13:45 alester joined 14:11 crab2313 joined 14:27 brrt joined 14:32 JimmyZ joined 14:39 JimmyZ joined 14:48 JimmyZ joined 15:21 JimmyZ_ joined
dalek : a20da40 | (kj, kjs)++ | m1 (4 files):
add more stuff for instr handling
15:43
15:44 alester joined 15:52 dmalcolm joined
dalek nxed: 24ca37d | NotFound++ | winxedst1.winxed:
drop float literals from stage 1
15:59
nxed: 8c41858 | NotFound++ | winxedst0.cpp:
drop float from stage 0
nxed: 01b5c40 | NotFound++ | / (27 files):
drop support for single quoted strings from stage 0
brrt who here thinks parrot will run on gnu hurd? 16:02
moritz thinks that parrot will run away from gnu hurd :-) 16:11
whiteknight i see no reason it wouldnt run on hurd 16:16
I tried to do it once, but couldn't get the hurd-based debian to install on my vm 16:18
sorear hurd is, from an apps POV, basically POSIX
NotFound Hurd: the final frontier
16:19 davidfetter joined 16:24 contingencyplan joined
whiteknight yeah, the core of parrot uses bog-standard posix apis and libc calls, so I think it should work on hurd if you can get it to configure 16:26
though, since the hurd people love Linus Torvalds so much, you have have to use Gnu/Git instead of regular Git. 16:27
most people would just call it "Git", but that pisses off the gnu people
16:34 Hunger joined 16:42 Justin joined
Justin good afternoon 16:42
whiteknight Justin!
how are you doing todaY? 16:45
Justin im doing good.
the gears are finally moving
although im lagging behind alittle so I will make up alot of work this weekend :/
16:46 PacoAir joined
whiteknight good, good 16:47
Justin: I'm starting work on a big refactor of our IO system. If you have any features or things you need to have added to support your work, let me know
Justin sure thing 16:49
whiteknight have you been able to build and test parrot on your box yet? 16:55
Justin partially. i just clones the repository 17:00
17:29 GodFather joined 17:41 GodFather joined
dalek nxed: 3047d22 | NotFound++ | winxedst2.winxed:
replace single quoted literal with double quoted in stage 2 compiler
17:54
nxed: bd0d608 | NotFound++ | t/medium/ (7 files):
use double quotes and some cleanup in several tests
nxed: ddbec06 | NotFound++ | t/ (2 files):
move single quoted string tests from medium to advanced
nxed: 13ce2af | NotFound++ | winxedst1.winxed:
drop support for single quoted strings from stage 1
kudo/nom: 32a6d06 | moritz++ | src/core/operators.pm:
make sequence deduction not assume numbers
nxed: beec808 | NotFound++ | winxedst1.winxed:
backport some changes in FunctionId and IdentifierExpr to stage 1
18:03
kudo/nom: 2b36193 | moritz++ | src/core/ (2 files):
switch to strict numification by default

But allow numification of '' to 0 without failure
18:18
kudo/nom: 525a664 | moritz++ | docs/ChangeLog:
update ChangeLog
18:26 bluescreen joined
dalek nxed: 8b47864 | NotFound++ | winxedst2.winxed:
add a missing annotation
18:28
nxed: 6494e57 | NotFound++ | winxedst1.winxed:
backport some minor fixes and cleanups to stage 1
18:30 Justin joined 18:33 PacoAir joined 18:37 schmooster joined
alvis msg NotFound when you get a chance would you please look at the following gist: git://gist.github.com/2783372.git 18:42
aloha OK. I'll deliver the message.
NotFound alvis: int the first part you do say(regex); andin the second say(regex[i]); 18:49
18:49 brrt joined
NotFound You probably mean say(regex[0]) in the first 18:50
alvis: BTW you have several ways to do such loops, no need to goto ;) 18:52
dalek sella: b74b985 | Whiteknight++ | / (3 files):
[Date] Change DateFormatter to require curly brackets around format specifiers. Update tests. Remove the format_experimental method, which was not producing the kinds of results I wanted. Update tests
18:53
sella: 82dcb4b | Whiteknight++ | / (6 files):
Add in ISO8601_101 class for some formatting according to standards. mostly untested. Fix a small issue with Date.day_of_year and add a test. Update TimeSpanFormatter to use the same brackets syntax as DateFormatter
alvis NotFound: Yes, I could've used 'say(regex[0])' there as well.
cotto ~~ 18:55
alvis NotFound: Yes, I know. It was some early test code, and I just modified it. But the problem is the 'ResizeableStringArray' prematurely terminates on the "Thisisastring", and I don't know why. I'm wondering if it's a bug or I'm just missing something. 18:56
dalek nxed: 9496903 | NotFound++ | winxedst (2 files):
create a function to centralize the Redeclared error
alvis NotFound: Let's see if I can be clearer: '(tx[i] == "")' tests for the end of line on the string "Thisisastring.". I'm 'shifting' elements off the 'ResizableStringArray' one character at a time, but it terminates with 'i = 7', i.e., on the "s" in "string". That seems incorrect to me. 19:05
NotFound alvis: shouldn't be " var regex = split('', text); " ? 19:06
alvis Well, the line I'm pointing at is 'var tx = split('', text);' Isn't that correct? The 'typeof(tx)' is 'ResizableStringArray'. 19:08
NotFound alvis: usually is faster to post only the code with the problem ;)
alvis: you are shifting and incrementing the index at the same time, so you get only half of the string. You need if (tx[0] == "") 19:10
alvis Oh crap! You're absolutely right! Sorry to have been (or be) such a dunderhead, but I very much appreciate it. 19:12
NotFound NM 19:13
19:18 dukeleto joined
dukeleto ~~ 19:18
whiteknight: ping
alvis NotFound: Fwiw, I'll make sure and mention this little tidbit in the tutorial and the docs on Winxed I'm working on. So, maybe it wasn't a complete waste of your time. Again, many thanks. 19:19
whiteknight pong 19:20
NotFound alvis: I'd better not recommend comparing "" against an off-limit position in a String Array. Such result can change in future releases of parrot. 19:21
alvis NotFound: Ah, ok. Thanks. I'll stick with testing against 'length()' then. 19:22
19:22 lucian joined
NotFound alvis: lentgh of the string or elements of the array. 19:22
alvis NotFound: Sounds good. 19:23
dukeleto whiteknight: i made this as a skeleton for jashwanth: github.com/leto/parrot-lapack
NotFound alvis: also, you can use a string iterator instead of split and indexing.
dukeleto whiteknight: have you talked to him about using Winxed/NQP/PIR/etc ? 19:24
whiteknight: it is not fully functional just yet, but it gives him a functional setup.winxed to start from
alvis NotFound: Ok. I'll give it a look. 19:26
NotFound alvis: "for (string s in "Thisisastring") ..."does it automatically. 19:27
whiteknight dukeleto: We talked about him using winxed. I think he said he was more comfortable with that than with NQP 19:28
I might be mistaken
dukeleto it is nice to see mod_parrot rising from the dead: github.com/bdw/mod_parrot
whiteknight I showed him your libgit2-parrot repo as an example of nci. I think that confused him more than helped him
but nci is a little bit difficult to wrap your head around
alvis NotFound: Cool. That's much more elegant. Thanks.
dukeleto whiteknight: that is good. There are a lot of similarities in parrot-libgit2 + parrot-lapack. He will be able to emulate most of the build infrastructure from parrot-libgit2 19:29
whiteknight if he wants to, yes
or he can jam the whole thing into a folder in PLA and use that build/test infrastructure too. I don't know exactly what his plan is as far as those decisions go
dukeleto whiteknight: i feel like he needs more direction. Too many choices at the beginning is a good way to get stalled 19:31
whiteknight: i basically ripped out all the stuff he needs from parrot-libgit2 and put it into the new parrot-lapack library. 19:32
whiteknight: have you talked to him about generating bindings vs. manually writing them all?
whiteknight that works too
no, I have not discussed that
if he only has a relative handful of routines to start with, doing it by hand would be fine 19:33
dukeleto whiteknight: lapack is pretty damn big. In libgit2, since the API changes so fast, I have a script which reads libgit2 header files and generates the NCI file
whiteknight unless you've got an easy way to generate them
dukeleto (which was originally written by bubaflub++ for parrot-gmp)
whiteknight: i think it will be easier for him to manually write a few dozen nci bindings to get something functional
whiteknight: then we can worry about generating nci defs 19:34
whiteknight: does that sound reasonable?
whiteknight sounds good to me
dukeleto whiteknight: i have been in a cave for a while. Is there any big changes in rosella in the last month or two that I should know about?
whiteknight lapack is so big that the project is basically open-ended. If he does well we can just keep pushing him towards bigger things
nope, Rosella has been pretty stable. I've been focusing on parrot the last few weeks 19:35
dukeleto whiteknight: i am going to give him very focused goals so he doesn't get overloaded
whiteknight good idea
dukeleto whiteknight: i see lots of cleanup branches from you. Nice work.
whiteknight I decided we had too many open tickets. So I closed a few
dalek nxed: efe0605 | NotFound++ | winxedst2.winxed:
builtin expr first test, with string cast
19:49
nxed: b8ad798 | NotFound++ | / (2 files):
Merge branch 'master' into builtinexpr
nxed: e51a492 | NotFound++ | winxedst2.winxed:
re-enable special case for index and calls in string cast
nxed: 68d3473 | NotFound++ | winxedst2.winxed:
finish conversion of int, float and string casts
nxed: 8bd62d5 | NotFound++ | / (4 files):
resolve merge conflict
nxed: 95d35d6 | NotFound++ | winxedst2.winxed:
merge branch builtinexpr and fix conflicts
dukeleto whiteknight++
whiteknight: i am writing a "startup" email to jashwanth now 19:50
whiteknight awesome
dalek p/toqast: a5d179c | masak++ | src/QAST/Operations.nqp:
[QAST::Operations] simplified copy/pasted code some

Not using this variable; removing it.
19:52
p/toqast: a6c9a36 | masak++ | / (2 files):
[QAST::Operations] implement repeat_while/repeat_until
p/qbootstrap: 2e354d1 | jnthn++ | src/QHLL/Grammar.pm:
Toss a couple of commented out lines from debugging/updating.
19:54
cotto gcc.godbolt.org/ 20:10
dalek p: c4cc06a | moritz++ | src/HLL/Compiler.pm:
expose parsed command line options and arguments to the user
20:12
nxed: 20da7e3 | NotFound++ | winxedst2.winxed:
refactor builtin var cast
20:15
kudo/nom: 5da3671 | moritz++ | / (2 files):
fix $*PROGRAM_NAME in the presence of command line options
nxed: 2c2ae90 | NotFound++ | winxedst2.winxed:
fix null checking in NullExpr
20:22
whiteknight Fun note about compilers on Windows 8: arstechnica.com/information-technol...windows-8/ 20:23
the platform SDK apparently wont ship with a C++ compiler at all, and the free version of VisualStudio wont have one either
20:29 brrt joined 20:31 brrt left
NotFound Microsoft must be jealous of people blaming iOS as the most closed garden, and wants to own that title. 20:33
benabik Someone added a 6502 processor to Minecraft. Must resist urge to write C compiler. 20:45
cotto that's... 20:47
benabik (The mod is called RedPower, for anyone interested.) 20:48
cotto I don't even know how to respond.
NotFound I think there are some free 8 bit C compilers, but don't know if they target 6502 20:50
benabik It's actually closest to the 65816, which is a 16b 6502 derivative. 20:51
dalek nxed: 1fb8251 | NotFound++ | winxedst2.winxed:
fix and improve builtin var cast
20:58
21:10 perlite joined
dukeleto does anybody really expect anything different from Microsoft? They like to talk about how they are open source friendly now, but their actions speak much louder. 21:12
NotFound dukeleto: yes: the small and hobbyist windows developers. 21:18
dalek nxed: 0f3e87f | NotFound++ | winxedst1.winxed:
drop binary not optimization from stage 1
21:24
nxed: 03672c5 | NotFound++ | winxedst2.winxed:
fix binary not optimization
p/qbootstrap: 7da814f | jnthn++ | src/ops/nqp.ops:
Turns out that ResizableIntegerArrays aren't zeroed to start with, which caused random failures when running NFAs. This fixes the various sporadic, seemingly random parse failures under qbootstrap.
21:26
21:29 lucian joined 21:34 kurahaupo joined 21:38 davidfetter joined
dalek Heuristic branch merge: pushed 30 commits to parrot/ayardley/pod_DESCRIPTIONS by ayardley 22:02
22:16 benabik joined
dalek p/qbootstrap: c13c4e2 | jnthn++ | src/QHLL/Actions.pm:
Fix :w quotemod check in action method (this is faster than what was done before, though it probably shoulda still worked the way it originally was). This means qbootstrap is down to just three test files with failures in t/nqp.
22:20
benabik ~~' 22:22
dalek nxed: cb64b98 | NotFound++ | t/ (8 files):
use using extern at namespace level instead of function level in some basic tests
22:39
nxed: 4fe5c50 | NotFound++ | winxedst0.cpp:
drop function level using and using extern from stage 0
22:45
nxed: d9f660f | NotFound++ | t/ (2 files):
move tests with namespaces from basic to medium
22:54
23:09 whiteknight joined 23:10 GeJ joined
whiteknight good evening, #parrot 23:19
dalek nxed: c7fdf88 | NotFound++ | winxedst0.cpp:
drop several unsupported diagnostics and some other unuseful things from stage 0
23:24
nxed: 9c7d206 | NotFound++ | / (2 files):
drop operator '%%' from stage 0
23:33
whiteknight NotFound: What does %% do? 23:41
NotFound whiteknight: cmod op
whiteknight oh, okay
NotFound I'm reducing the language subset of stage 0 to the minimum required to compile stage 1 23:43
Next step will be kill namespaces. 23:44
whiteknight cool 23:45
less code to maintain
NotFound Yeah, and maybe a better example to people interested in writing full bootstraped compilers. 23:46
dalek sella: 07f57b7 | Whiteknight++ | src/date/ISO8601_101.winxed:
[Date] several fixes so ISO8601_101.parse_date works
23:59
sella: 8335465 | Whiteknight++ | src/date/Date.winxed:
[Date] Add an is_local flag to the Date constructor to determine whether this is a local time or a GMT time