Parrot 3.4.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today
Set by moderator on 17 May 2011.
lucian NotFound: does winxed have any import/include statement? 00:06
00:07 whiteknight joined, dmalcolm left
bubaflub lucian: there is an "$include_const '...'" and a "load_bytecoad('...');" 00:09
not sure if either of those are what you want
lucian bubaflub: hmm. so load_bytecode would load a previously compiled one. i just wanna split a file in several
thanks
dukeleto bubaflub: how goes? 00:14
00:14 kid51_at_dinner is now known as kid51
bubaflub dukeleto: not bad. about to eat some dinosaur-shaped chicken nuggets. 00:15
dukeleto: how you doing?
dukeleto bubaflub: trying to get in a coding groove, but IRL keeps interrupting 00:22
bubaflub dukeleto: bummer. did you see my blog post / commits from yesterday? 00:23
dukeleto bubaflub: yes, read the blog post, and the issue emails. 00:31
bubaflub: you stuck on anything?
bubaflub dukeleto: nope, not yet
soh_cah_toa dukeleto: hey, speaking of blogs...i liked your blog post about M0. i've been wondering "why M0?" for a while now and i thought your post really helped 00:33
dukeleto: anything that means a more cleaner and logically organized parrot makes me very happy. i can't wait until the merge. 00:35
00:40 lucian left
dukeleto soh_cah_toa: you and me both :) 00:43
dukeleto writes a grant update
davidfetter
.oO( GRANT UPDATE ON proposal TO dukeleto; )
00:47
cotto ohai 00:50
soh_cah_toa, the M0 merge? 00:51
That'll be a great day.
soh_cah_toa yeah 00:54
00:54 theory left
davidfetter m0? 00:55
dukeleto davidfetter: leto.net/perl/2011/05/what-is-m0.html 00:56
aloha, m0 is leto.net/perl/2011/05/what-is-m0.html
aloha dukeleto: ... but m0 is the VM that Lorito will run on top of. ...
davidfetter reads
dukeleto aloha, m0 is also leto.net/perl/2011/05/what-is-m0.html
aloha dukeleto: Okay.
dukeleto aloha, m0?
aloha dukeleto: m0 is the VM that Lorito will run on top of. or leto.net/perl/2011/05/what-is-m0.html
davidfetter
.oO(PL/M0)
00:57
dukeleto davidfetter: nope, m0 is parrot guts 00:58
davidfetter: headcheese, perhaps ;)
soh_cah_toa lol, parrot guts
davidfetter mmm...headcheese 00:59
davidfetter missed an opportunity for awesome headcheese at the murray street kitchen
dalek p: ef23ef5 | pmichaud++ | / (2 files):
Merge branch 'master' of github.com:perl6/nqp
01:03
p: f152ca1 | pmichaud++ | Configure.pl:
Fix .exe bug in verify_install (jnthn++).
bacek_at_work ~~ 01:25
dalek p: c6c3fdd | pmichaud++ | tools/lib/NQP/Config.pm:
Allow using parrot_config found in search path. cotto++
01:39
02:03 woosley joined 02:04 whiteknight left 02:09 marcel_r joined
soh_cah_toa headerizer is whining about how there's no pod in my file. is this what i think it is? headerizer fails if i don't comment my function definitions w/ pod? 02:10
kid51 soh_cah_toa: Yes 02:12
t/codingstd/c_function_docs.t
soh_cah_toa great, thanks
kid51 I can't recall whether headerizer per se fails, but the codingstd certainly will. 02:13
Although, granted, IIRC there's a list of "exempted files" somewhere.
soh_cah_toa alright, i suppose that's good practice 02:15
kid51 You should get familiar with 'make codetest' or, for brevity, 'make nocritic_codetest' 02:16
(the latter skips over Perl::Critic)
soh_cah_toa ok 02:17
bubaflub seen plobsing
aloha plobsing was last seen in #perl6 12 days 12 hours ago joining the channel.
atrodo Hurray. I've finally got the new version of isparrotfastyet collecting data. Now to have the data reflected in the website 02:39
bubaflub atrodo++ 02:41
bacek_at_work atrodo, wanna play with speedcenter.parrot.dotcloud.com/? It's "empty" speedcenter installation (same as used by speed.pypy.org) 02:42
atrodo bacek_at_work: possibly 02:43
bacek_at_work atrodo, just ping me when. I'll give you full admin access :)
02:43 kid51 left 02:44 kid51 joined
atrodo bacek_at_work: is there anything to do besides start submitting data? 02:44
bacek_at_work atrodo, erm. "Configure" it properly. "Environments", etc 02:45
02:50 kid51 left, tty234 left 02:51 marcel_r_ joined 02:56 marcel_r left, marcel_r_ is now known as marcel_r
bubaflub ping NotFound 02:58
02:58 theory joined
dalek rrot-gmp: 5963c5b | bubaflub++ | / (4 files):
fill out the winxed class a bit more

and a winxed example
02:59
03:01 tewk_ joined, tewk left 03:06 tewk joined, tewk_ left 03:12 marcel_r left 03:13 mtk left 03:19 mtk joined 03:23 davidfetter left
tcurtis ~~ 03:31
dalek rrot-gmp: ddba259 | bubaflub++ | src/GMP.winxed:
whoops, need to return this
03:32
bubaflub msg dukeleto I've gotten Winxed to initialize, set, and get GMP's. I've got some strange Winxed error so I'll hassle some peeps tomorrow about it. 03:33
aloha OK. I'll deliver the message.
03:33 bubaflub left 03:38 benabik left 03:42 benabik joined 03:44 soh_cah_toa left
dalek p: a4f80df | pmichaud++ | Configure.pl:
Add a --make-install option to Configure.pl, to automatically build

be used only by other systems wanting to do --gen-nqp.)
03:46
04:12 JimmyZ joined 04:14 JimmyZ left, JimmyZ joined 04:16 GeJ_ is now known as GeJ 04:23 JimmyZ_ joined 04:27 JimmyZ left, JimmyZ joined 04:29 hudnix left, JimmyZ__ joined 04:31 JimmyZ__ left 04:33 JimmyZ_ left 04:34 JimmyZ left
cotto dukeleto, ping 05:49
dukeleto, unping 05:51
dalek rrot/m0-prototype: 2da856f | cotto++ | / (13 files):
implement deref, update examples, get all m0 tests passing again
05:53
cotto It makes me sad that that's all I have time for tonight. 05:54
dalek rrot/m0-spec: e3dd0d6 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add note to the exceptions section
06:07
06:11 jsut joined, jsut_ left
cotto sleeps 06:13
dalek TT #1983 closed by dukeleto++: Parrot_PMC_is_equal_num seems broken 06:18
TT #1983: trac.parrot.org/parrot/ticket/1983
tcurtis decides to sleep tonight and blog tomorrow... 06:20
cotto msg jnthn__ I tried to get Rakudo's nom branch working to work on the invokable fix, but the Makefile in nom seems to be broken. I see variables like "PERL6_ML_PBC = Perl6/ModuleLoader.pbc" when they should include src. I tried to fix it but got distracted before making progress. 06:21
aloha OK. I'll deliver the message.
moritz cotto: if you mkdir Perl6, there is indeed a generated file Perl6/ModuleLoader.pbc without the src/ 06:22
s/is/is generated/ 06:23
dalek rrot: b00deb3 | dukeleto++ | src/extend.c:
[extend] Remove Parrot_find_language, which never did anything useful
06:25
rrot: 47df0fb | dukeleto++ | docs/pdds/draft/pdd11_extending.pod:
Remove remnants of Parrot_find_language from docs
06:32 fperrad joined 06:42 linge left 06:43 linge joined 06:49 linge left
dalek rrot/leto/embed_grant: 16b6ec1 | dukeleto++ | t/src/extend.t:
[t] Parrot_get_root_namespace
07:03
07:07 mj41 joined
dalek rrot/leto/embed_grant: caf6ebe | dukeleto++ | t/src/extend.t:
[t] Parrot_PMC_null
07:14
rrot/leto/embed_grant: 700f0a5 | dukeleto++ | t/src/extend.t:
Add coverage to Parrot_register_pmc and Parrot_unregister_pmc
rrot/leto/embed_grant: c04523b | dukeleto++ | t/src/extend.t:
Add coverage for Parrot_register_string and Parrot_unregister_string
07:15 theory left 07:19 baest joined
dalek rrot/leto/embed_grant: 2a51d1e | dukeleto++ | / (4 files):
Merge branch 'master' into leto/embed_grant
07:31
07:41 woosley left 08:25 SHODAN joined
dalek p: 395da2f | pmichaud++ | src/NQP/Actions.pm:
Add io_ops to list of automatically loaded dynoplibs, so we can get
08:26
08:43 linge joined 08:45 linge left 09:01 jsut_ joined, jsut left 09:17 contingencyplan left 09:23 contingencyplan joined 09:31 autark joined 09:41 woosley joined
dalek p: 03db0cb | jonathan++ | src/6model/sixmodelobject.h:
Add a pointer to the STable where a REPR can optionally hang any type-specific data, so we can refactor away from 'REPR instances'.
09:51
09:58 woosley left 10:01 lucian joined 10:09 lucian_ joined 10:14 lucian left
dalek p: f5c61a4 | moritz++ | src/stage0/ (6 files):
rebootstrap with io_ops loaded
10:16
p: b94c439 | moritz++ | src/ModuleLoader.pm:
search in blib/ for modules unless a module path was specified
10:23 lucian_ left 10:30 lucian joined 10:57 lucian_ joined 10:59 mtk left 11:01 lucian left 11:04 JimmyZ joined 11:06 mtk joined 11:26 lucian_ left 11:27 mikehh left 11:28 JimmyZ_ joined 11:33 JimmyZ left, JimmyZ_ is now known as JimmyZ 11:36 JimmyZ_ joined 11:39 JimmyZ left, JimmyZ_ is now known as JimmyZ
dalek p: d12b30c | jonathan++ | Configure.pl:
Make sure we get path seps right on Win32.
11:42
p: 044691c | jonathan++ | src/ (6 files):
REPR refactor. Avoid the memory-wasting concept of REPR instances as used by P6opaque and instead just give them a place in the STable to hang any data they're interested in keeping around. This in turn guts the REPR PMC and pretty much eliminates the need for it.
p: 4adf446 | jonathan++ | src/ (11 files):
Simplify the REPR API, thanks to not having REPR instances any more. Means we pass an argument less for loads of really common operations.
11:48 Kulag joined 11:55 kid51 joined 11:59 contingencyplan left 12:14 whiteknight joined
whiteknight good morning, #parrot 12:16
12:20 mikehh joined 12:23 kid51 left, bluescreen joined 12:35 hudnix joined
ligne is the ffi stuff mean to be an alternative to the extra-nci-thunks? 12:38
i was looking at the test failures when Parrot is built --without-extra-nci-thunks, and it only seems to happen when it was also built --without-libffi. 12:39
whiteknight yes, ffi is the alternative to nci thunks 12:47
nci thunks are statically compiled functions which have certain signatures. FFI is a library that calls functions with an arbitrary signature dynamically 12:48
so if you have --without-extra-nci-thunks and --without-libffi, you don't have any mechanism for calling native functions in the extra nci thunks list 12:49
so what we need to do is figure out which thunk is required from that list, and move it to the core thunks list 12:50
12:53 bubaflub joined
bubaflub whiteknight: ping 13:04
whiteknight pong
bubaflub whiteknight: can i ask you a few questions about Winxed? specifically some of the errors i'm getting
whiteknight bubaflub: sure 13:05
bubaflub whiteknight: great. this is my winxed file github.com/bubaflub/parrot-gmp/blo...MP.winxed.
whiteknight: this is def.pir (which gets compiled into def.pbc) github.com/bubaflub/parrot-gmp/blo...rc/def.pir 13:06
whiteknight okay
bubaflub whiteknight: and this is the file i'm trying to run: github.com/bubaflub/parrot-gmp/blo...sic.winxed
whiteknight okay. So what errors are you getting?
bubaflub i'm getting "WARNING: class GMP.Integer not found at compile time"
and
when i try and call mpz_add_ui i get "No NCI thunk available for signature `void (ptr, ptr, int)'" 13:07
whiteknight that first message is just a warning. Winxed tries to do static binding on types if it can. You can make that go away with --nowarn
bubaflub even though in def.pir definitely has __gmpz_add_ui with vppi
whiteknight bubaflub: that second error is a problem with Parrot's native call. Install libffi on your machine, then reconfigure and rebuild Parrot with it
bubaflub whiteknight: ah, ok.
whiteknight: glad i'm not going insane. 13:08
whiteknight bubaflub: yeah, it's a problem with Parrot's ability to call functions of that signature
you've defined it fine, you're calling it fine. When it gets inside Parrot to do the invoke it doesn't have the correct mechanism
bubaflub whiteknight: so my project will require parrot's with libffi, right?
whiteknight libffi will get you passed the error for now. Eventually you may also want to include a library of custom thunks for calling functions
plobsing is the best resource for that, when the time comes, but I can probably help out too 13:09
bubaflub whiteknight: great. thanks.
whiteknight but for now, it's easier to use libffi
bubaflub whiteknight: yeah, for now i'm using a StructView in GMP.winxed but I'd like to move off of that eventually if it's deprecated
whiteknight StructView isn't deprecated. It's new 13:10
bubaflub is it? oh good.
whiteknight StructView might be experimental still, but it's not going anywhere
ligne whiteknight> thanks, that's more or less what i'd understood :-) 13:12
whiteknight ligne: what are the test errors you are receiving?
ligne whiteknight> basically those in tt#2116, tt#2117. 13:15
whiteknight okay
ligne lots of errors along the lines of "No NCI thunk available for signature `ptr (ptr, STRING)'"
github.com/ligne/parrot/commit/9b9...0e31c73e6d was a first go at a patch 13:16
but if ffi support is also sufficient, it'll require tweaking
13:21 lkundrak joined
lkundrak hi 13:21
what's the purpose of .declarations files?
dalek rrot: e71c177 | mikehh++ | include/parrot/extend.h:
run make Headerizer to complete removal of Parrot_find_language
13:36
rrot: 7db0145 | mikehh++ | src/nci/libffi.c:
changed by make Headerizer
ligne whiteknight> updated so the tests run if Parrot was built with FFI instead. let me know if you'd prefer me to squash the commits. github.com/ligne/parrot/commit/c8f...387ee7ce9d 13:38
13:38 ligne is now known as ligne_work
whiteknight lkundrak: .definitions files? Where do you see those? 13:38
ligne_work (or if i'm Doing It Wrong, natch ;-) ) 13:39
whiteknight ligne_work: I'll take a look at it in a bit
ligne_work whiteknight> cool, thanks :-)
no rush!
13:46 JimmyZ left
lkundrak whiteknight: sorry, my bad; .declarations 13:53
whiteknight lkundrak: I still don't know what that is.
moritz can't find any such files in the parrot repo 13:54
dalek rrot/with_winxed: b735529 | NotFound++ | / (8 files):
include a snapshot of winxed installable compiler and driver and set the parrot config system to build and install them
NotFound Branch with_winxed ready to test 13:55
whiteknight NotFound++ 13:56
that makes me super happy
NotFound whiteknight: What is the appropiate type for a ticket tracking this? feature? experimental? 13:58
whiteknight experimental, I think
NotFound Ok
whiteknight once that merges, we can take winxed out of Plumage, I think
I added support to Plumage for building things with winxed. I'll have to double-check that all still works 13:59
atrodo NotFound++ 14:01
14:05 athomason left 14:06 athomason joined
lkundrak whiteknight: these ./runtime/parrot/library/postgres.declarations ./runtime/parrot/library/ncurses.declarations ./runtime/parrot/library/crypto.declarations ./runtime/parrot/library/openssl.declarations 14:07
whiteknight: in parrot clone
dalek TT #2127 created by NotFound++: Adding a winxed snapshot to the repo
TT #2127: trac.parrot.org/parrot/ticket/2127
14:08 SHODAN left
bubaflub lkundrak: it looks like NCI definition file - that is, it holds all the method names and signatures to call a C library 14:13
lkundrak bubaflub: I could not look up documentation on how to use them though. looking at ./runtime/parrot/library/ncurses.pir it seems like it has redundant signatures 14:16
bubaflub lkundrak: tools/dev/ncidef2.pir.pl takes that .definition file and generates the .pir file. the .pir file is then compiled into a .pbc. 14:17
14:19 hercynium joined
lkundrak bubaflub: ah, that makes sense. what's te use of those pir files in repository when there's a declarations file? 14:19
bubaflub lkundrak: i can't say for certain, but it just saves a step of generating code.
lkundrak bubaflub: also, I've grabbed a binary parrot build (from fedora) and the package contains declarations file for openssl, but nothing else (no pir or pbc)
bubaflub lkundrak: hmmm, i'm in a git checkout and did a make && make install and both .pir and .pbc are there for me. 14:20
lkundrak: the discrepancy could be the way that the RPMs are generated 14:21
lkundrak bubaflub: okie, thank you 14:22
bubaflub lkundrak: do you have tools/dev/ncidef2pir.pl and a copy of perl on your system? if so, you can generate the pir file and then run parrot to get the bytecode 14:23
14:25 TiMBuS|Away joined 14:26 TiMBuS left, TiMBuS|Away is now known as TiMBuS
lkundrak bubaflub: I do have it in the parrot checkout. I can't see how was the .pir file generated with make for you though -- a git grep ncidef2pir doesn't find any call to ncidef2pir.pl 14:26
bubaflub lkundrak: you're right - it looks like they are actually checked into the repo 14:28
benabik G'morning! 14:29
14:48 alester joined
dukeleto ~~ 15:00
15:13 wknight8111 joined 15:18 whiteknight left, JimmyZ joined 15:21 bluescreen left
bubaflub morning dukeleto 15:22
dukeleto bubaflub: indeed. 15:24
bubaflub dukeleto: good work on the grant test coverage stuff.
wknight8111 dukeleto++ 15:29
cotto ~~
dukeleto cotto: does this seem familiar ? homepage.ntlworld.com/edmund.grimle...piler.html
bubaflub: danke
cotto dukeleto, somehow it does 15:32
bubaflub dukeleto: do you know anything about generating custom NCI thunks? 15:33
benabik dukeleto: Starting from raw machine code in hex seems a little excessive.
cotto moritz, thanks (from backscroll)
msg jnthn__ moritz++ got me going again on the invokable bug. 15:35
aloha OK. I'll deliver the message.
dukeleto benabik: well, the dude was wistfully talking about punch cards :) 15:36
moritz cotto: fwiw it's now moved to blib/Perl6
afk
15:36 bluescreen joined
dukeleto bubaflub: i pretend to know some stuff 15:36
cotto dukeleto, try running make m0_tests in the m0 branch
:D
bubaflub dukeleto: looking at tools/dev/nci_thunk_gen.pir i think Plobsing is the person to ask 15:37
cotto goes to work
bubaflub dukeleto: anyways, currently i need libffi installed (and Parrot configured with it) to get parrot-gmp to work correctly
dukeleto: i'm not blocking on it, but it'd be nice to not require libffi
wknight8111 bubaflub: what signatures do you need for it?
bubaflub wknight8111: vppi at least 15:38
wknight8111 bubaflub: add that to src/nci/core_thunks.nci. Then, with an existing parrot, run "make bootstrap-nci" to update the generated thunks
then rebuild Parrot
bubaflub wknight8111: ah, ok.
dukeleto wknight8111: should he commit that? i.e. are we adding that to the core thunks?
wknight8111 no, don't commit those 15:39
bubaflub: that's the cheap-and-easy way. The better way is to create your own .nci file in the Parrot-GMP repo and generate your own NCI library
I'm more fuzzy on that process
bubaflub wknight8111: ok, i can do the later. i'm just curious on how to get that compiled / loaded with Parrot
wknight8111 there is a tool, tools/dev/nci2somethingsomething that should build the thunks 15:40
looks like nci_thunk_gen.pir
dukeleto bubaflub: i would say, just hack on parrot-gmp for now. Don't worry about the libffi cleanup. We can do that later, with help from plobsing++ 15:41
bubaflub dukeleto: ok.
wknight8111: i'll take a look at that as well.
dukeleto "Programming in Scala" 1st edition, free online: www.artima.com/pins1ed/ 15:42
wknight8111 hmmm... it doesn't look like building nci thunk libraries is handled by distutils yet.
that is a must
bubaflub wknight8111: well, since i'm using distutils for my project, maybe i'll throw that on my TODO pile 15:43
benabik I just discovered `make codetest` and the MANIFEST files... I can't help but think that the codetests should ignore everything in MANIFEST.generated. 15:45
wknight8111 bubaflub: I'm trying to find examples right now
bubaflub wknight8111: fantastic. thanks
wknight8111 github.com/plobsing/parrot-zeromq/...MQ/Raw.nci
plobsing uses this alot, so whatever he does is the right way, barring documentation 15:46
so that's a .nci file from his library project
the makefile has the command: perl $(PARROT_TOOLS_DIR)/dev/ncidef2pir.pl $< $@ 15:47
but that looks to me like it would be generating a .pir file, not a .so
dukeleto wknight8111: it also assumes that somebody has the parrot.git repo somewhere
15:47 lucian joined
wknight8111 dukeleto: what does? 15:48
bubaflub wknight8111: i've been following plobsing's ZeroMQ project - but i think he's using signatures that already exist and doesn't need to add any 15:50
wknight8111 I didn't see some of those signatures in parrot
ippipP for instance isn't in parrot
at least not that I can find
bubaflub wknight8111: ok, i'll keep looking. 15:51
wknight8111 in the Parrot makefile, here's the incantation it uses: $(PERL) $(DEV_TOOLS_DIR)/mk_nci_thunks.pl 15:52
dukeleto wknight8111: perl $(PARROT_TOOLS_DIR)/dev/ncidef2pir.pl assumes that parrot.git is around. just sayin'. Most things on parrot only require the binaries from an installed parrot 15:53
bubaflub dukeleto and wknight8111: i'm using ncidef2pir.pl already and committing the generated file to the repo. i think what i'm missing is how to get my special signatures loaded correctly without libffi. 15:54
dukeleto seen plobsing?
aloha plobsing was last seen in #perl6 13 days 2 hours ago joining the channel.
wknight8111 dukeleto: so that sounds like it needs to be refactored
dukeleto bubaflub: sure. Don't worry about that now, keep hacking parrot-gmp stuff
wknight8111: yes
15:56 theory joined
dalek TT #2128 created by whiteknight++: Ability to build NCI thunks with Distutils 15:57
TT #2128: trac.parrot.org/parrot/ticket/2128
dukeleto msg cotto i am seeing "make m0_tests" pass on my machine. Nice work! 15:58
aloha OK. I'll deliver the message.
wknight8111 ncidef2pir.pl isn't installed 16:05
16:05 dmalcolm joined
wknight8111 I don't know how we make that happen 16:05
dukeleto wknight8111: i am not sure it should be installed 16:07
wknight8111: i want the functionality, but how many other perl scripts does parrot install on a users system?
wknight8111: perl is supposedly only a config/build requirement, not a runtime requirement. But ncidef2pir.pl is and edge case. It is really only a developer that would use it 16:08
wknight8111 so we need to rewrite it in PIR/NQP/Wixned
dukeleto wknight8111: wfm 16:09
lucian i'm assuming that perl5 bridge still requires perl, so it's not an option
NotFound In all three together?
wknight8111 might be a good test case for the new Winxed snapshot
dukeleto wknight8111: we might want to think about a git submodule for winxed 16:12
benabik dukeleto: Winxed is in SVN
cotto_work ~~ 16:13
wknight8111 yes, winxed is svn
NotFound I think a hand-updated snapshot is a simple and more controlled way.
wknight8111 NotFound: git submodules point to an explicit commit. they don't auto-update 16:14
lucian i think i agree with NotFound, the recent issue i've had with .hll would be less likely happen with releases 16:15
dukeleto i would maintain a git mirror of Winxed if that is the only thing holding us back from using it as a submodule 16:16
i already wrote the code to maintain the parrot.git mirror *back in the day*
NotFound What will be the advantages of the submodule way?
dukeleto NotFound: we could tell git exactly which sha1 (aka svn rev) parrot.git should use for winxed 16:18
it prevents some work from being manual, and from checking in winxed code directly into parrot.git 16:20
wknight8111 dukeleto: we install create_language.pl, gen_makefile.pl, pprof2cg.pl and reconfigure.pl at least 16:21
ops2c.pl, pmc2c.pl
and associated crap in tools/lib/*.pm
dukeleto wknight8111: really? I am amazed. None of them are prefixed with parrot_ . Most distros (such as Debian) don't like that 16:22
wknight8111: we need to rethink what we install
wknight8111 they're all in the <parrot_install>/tools/* directory. not on PATH by default
I don't necessarily agree that we should be installing them, but we are. Prior art
of course, if nci2whatever is not installed yet, we can rewrite it into a different langauge without a deprecation cycle 16:23
dukeleto wknight8111: ah, ok. We need better terminology. I am fine with anything in tools/ staying there. But we should be careful about what we install in the PATH
16:23 mj41 left
wknight8111 dukeleto: right. I want to install the nci utils into tools/ 16:23
dukeleto wknight8111: hokey dokey. Go for it.
wknight8111 at least as a temporary measure
NotFound Now that you say that... the with_winxed branch installs 'winxed' in bin
Should we rename it to parrot_winxed or something like that? 16:24
dukeleto NotFound: yes, or the package maintainers will tar and feather us 16:25
wknight8111 hmm... that seems obnoxious 16:27
dalek p: 0cac59c | jonathan++ | src/ (3 files):
Give a struct a more generic name so we can re-use it in another case.
p: 1f9da88 | jonathan++ | src/6model/sixmodelobject.h:
Add container spec slot of the s-table. Also a little movement to get vaguely related s-table elements in chunks to try and get better cache line hits.
wknight8111 I think I would prefer it not be renamed
p: 5f29114 | jonathan++ | src/ops/nqp.ops:
Add is_container and nqp_decontainerize ops.
p: 1d75ccd | jonathan++ | src/ops/nqp.ops:
set_container_spec op.
p: 88f386d | jonathan++ | src/ops/nqp.ops:
Oops, fix thinko.
wknight8111 I mean, they are two separate programs, part of the same package
benabik wknight8111: We do the same thing with parrot-nqp
wknight8111 we do install pbc_merge into PATH too, and that's never been an issue with the maintainer
maintainers
NotFound $ ls runparrot/bin/
wknight8111 benabik: I'm not sure I would have made that decision with parrot-nqp either
NotFound ops2c parrot_debugger parrot-prove pbc_merge
parrot parrot_nci_thunk_gen pbc_disassemble pbc_to_exe
parrot_config parrot-nqp pbc_dump winxed
We are a bit inconsistent right now.
wknight8111 yeah, we put a lot of crap into Path 16:29
but winxed is a separate program with it's own name. We're only snapshotting it, not claiming to own it
lucian i don't see why a prefix would be needed either
wknight8111 same with NQP. We don't own it. Patrick names it whatever he wants to name it
lucian packagers will hate undeclared dependencies, though
wknight8111 we can declare dependencies 16:31
dukeleto parrot_nqp is the nqp that parrot chooses to peg against, nqp is whatever the latest nqp is
there is a difference
wknight8111 ah, that does make some sense
so parrot_winxed is the snapshotted version, winxed is bleed?
bubaflub dukeleto: oh, and by the way - the file in examples/basic.winxed works. it inits a GMP.Integer in Winxed, sets it to 30, adds 2, and then gets an int back from it and prints it out.
dukeleto i agree, we need to standardize our names. Mixing underscore and hyphens sucks a vacuum cleaner
bubaflub: freak yeah! 16:32
NotFound Note that 'winxed' is just a driver, the language lives at lib/3.4.0-devel/languages/winxed/winxed.pbc
bubaflub dukeleto: yep, hopefully i'll have the rest of the functions in the Winxed class soon.
16:32 JimmyZ left
benabik Is the only way to get t/codingstd/pir_code_coda.t to ignore a file to add a "THIS IS A GENERATED FILE" line? That seems poor since it would have to be re-added every time PCT is rebootstrapped. 16:33
dukeleto benabik: seems suboptimal 16:34
NotFound So if you want to diferentiate bin/parrot-winxed from bin/winxed the load_language'able name should be also changed. 16:35
wknight8111 No, I don't want to change it 16:40
I think it should be installed as "winxed"
if the user wants to maintain a different version, they can manage that themselves
NotFound Fine for me. 16:41
dukeleto wknight8111: i think these things should be brought up on parrot-dev 16:44
wknight8111 we can do that 16:46
lucian NotFound: might i suggest winxed releases? then there would be no problem at all with having the same name 16:47
NotFound lucian: Adding release numbers to the load_language name? 16:48
16:48 mj41 joined
lucian NotFound: no, i mean doing winxed releases, with version numbers 16:48
then parrot can bundle a specific version 16:49
NotFound I don't see what problem are you trying to solve. Including two generated pir files is as specific as anyone may want. 16:50
lucian NotFound: if there are explicit versions, then it's reasonable to expect users to have several side-by-side. and packagers would like it too 16:52
NotFound lucian: I think you are thinking about perl, python, ruby or something like that. Winxed is too young to have such problems. 16:54
lucian NotFound: sure, it's your call
NotFound Of course, I'll start version numbering soon, but probably not before migrating to git. 16:56
16:56 lucian left, lucian joined
dalek nxed: r1026 | NotFound++ | trunk/winxedst1.winxed:
add a "THIS IS A GENERATED FILE" comment to generated code header
16:59
nxed: r1027 | NotFound++ | trunk/ (3 files):
updated installable files
17:01 fperrad left
wknight8111 Various files in C#-land are marked with "This file was generated by a tool" 17:02
I think to myself, "does that developer know he's being called a 'tool'?"
cotto_work wknight8111: how ambiguous
wknight8111 I didn't think Ryan Seacrest wrote software
dalek rrot/with_winxed: d646a65 | NotFound++ | ext/winxed/ (2 files):
update winxed snapshot to have have the "GENERATED FILE" mark
17:04
benabik What does MANIFEST.generated do? 17:07
NotFound benabik: is used by some tools during make install to know some files that must be installed and where, for example. 17:11
lucian wknight8111: i'm looking into testing. is there an example of how to use Rosella.Test ?
17:12 dodathome joined
dalek rrot: 7bd5b4f | dukeleto++ | / (3 files):
Remove last remnants of Parrot_Language and fix docs for Parrot_new_string
17:12
wknight8111 lucian: Rosella's test suite itself is written with it
benabik NotFound: So that's a list of files generated during build that need to be installed?
wknight8111 t/harness is the harness, everything else *.t is a test
mock objects, if you're interested, are worked out most heavily in t/mockobject/Mocking*.t
lucian: basically, include "rosella/test.pbc" in the file, create a class. Every method in that class will be a test 17:14
Call Rosella::Test::test(<class>) to run it
lucian wknight8111: ok, i'll have a look. .t files seemed written in nqp, which is why i was confused, thought rosella used something else for testing itself
NotFound benabik: it's a list of generated files, the installation is one of its functions, but probably have more, I'm not sure.
dukeleto benabik: MANIFEST.generated is a list of installable files that are generated
wknight8111 lucian: Rosella's tests are all NQP, mostly to prove that Rosella is language neutral 17:15
Rosella is written in Winxed
lucian wknight8111: ah, i see
wknight8111 I haven't taken the time to write out any tests in winxed yet (I should do that soon)
lucian: When the test method is executed you have attributes "self.status" for controlling the test result (default result is pass), and "self.assert" for running assertions 17:16
lucian thanks. i finally have my object system in a state where it's decoupled enough to do some tests on it
well, more tests
wknight8111 in NQP those are called "$!status" and "$!assert"
lucian right
NotFound If someone want a challenging task: figure how to write tests for WinxedGtk
17:18 ligne_work is now known as ligne_pub
dukeleto NotFound: don't tempt me 17:19
lucian NotFound: should be possible with at-spi 17:20
dukeleto is already having enough trouble concentrating on doing what he is already supposed to do
too many things! 17:24
cotto_work +1
also, too many good things
benabik Is there a good simple way to mark files as generated for codetest to ignore? It looks like trailing_space has a custom list, but nothing similar for pir_code_coda or copyright. 17:28
lucian what's the recommended way of including/importing things in winxed? 17:41
NotFound lucian: including for a now is limited to .pasm files with integer constants. 17:44
wknight8111 lucian: depends what the things are.
lucian: what I use is the load_bytecode() built-in for most cases
lucian winxed classes
NotFound: right, so not useful for this
wknight8111 winxed doesn't have text transclusion, so if you want a separate file you need to compile them separately and merge 17:45
or cat the source files together
NotFound lucian: the way I'm using right now is: $load 'classfile.pbc'; and the declaring the class used.
lucian hmm. what about 'using' i haven't figured out what it does for sure
NotFound Like this: 17:47
$load 'WinxedGtk.pbc';
namespace WinxedGtk
{
class Window;
class MessageDialog;
class ScrolledWindow;
class TextView;
}
lucian oh, declare them again? i see
17:48 fperrad joined
lucian wknight8111: and if you don't mind, what's the recommended way of using rosella? after load_bytecode, the compiler complains about 'Rosella' being undefined 17:49
NotFound You must put the declarations in the same name as in the file that defines them.
namespace
wknight8111 lucian: winxed spits out those warnings if classes aren't found at compile time
lucian: run winxed with the --nowarn arg 17:50
NotFound: Actually, can we make that warning message go away?
lucian it's not a warning, it's a syntax error
wknight8111 NotFound: most times when we load libraries the types aren't found at runtime, so I get that warning a lot
lucian: nopaste your code?
NotFound wknight8111: I know is annoying sometimes, but helps a lot other times. 17:51
wknight8111 NotFound: All my build scripts use "--nowarn" by default, so it doesn't help me at all
NotFound wknight8111: the best way to avoid it is predeclaring the classes used. Alternatively, use the new [ ... ] variant. 17:52
wknight8111 NotFound: oh, I didn't know winxed supported pre-declarations. Does the new [ ... ] syntax allow constructors? 17:53
lucian gist.github.com/1002871
dalek rrot-gmp: 8e72fad | bubaflub++ | examples/basic.winxed:
silence warning about not finding GMP.Integer
NotFound wknight8111: plobsing asked for it some time ago, but is being more useful since recent scope rules changes. 17:54
wknight8111 lucian: "using Rosella.Test.test" on line 9, and "test(class TestBla)" on line 11 17:55
NotFound wknight8111: Uh, no, new [ ] syntax is intended for pir classes and with arguments it uses init_pmc 17:56
wknight8111 NotFound: well, that doesn't help me much
Like I said, I just use --nowarn for now. No big deal
NotFound Predeclaration is the way to go, until we have a way to do the same with header files or something. 17:57
lucian wknight8111: ah, got it. thanks!
wknight8111 lucian: Awesome. Just about every part of that library is pluggable or subclassable, so if you want any kind of new behavior at all let me know and I'll show you how
lucian cool 17:58
a winxed tutorial/reference would be very useful in reducing confusion *wink wink* *nudge nudge* 17:59
wknight8111 I'll start working on one soon :)
lucian :D
i guess i could help with an FAQ. i've had questions, and got answers one way or another
lucian goes for a run 18:00
wknight8111 hmm, a run sounds good 18:02
but I have to sit here in my chair for another 2.5 hours
writing a winxed tutorial would expose how little I actually know about winxed :) 18:03
benabik wknight8111: No better way to learn than to try to teach someone else.
wknight8111 benabik: have you ever heard of Wikibooks?
benabik wknight8111: Yes indeedy
wknight8111 benabik: I have about 50k edits on wikibooks back in college. I had a graph at one point, the more contributions I was making to that site, the higher my GPA was 18:04
for that exact reason. Trying to teach something to another person makes you learn it better
benabik wknight8111: Sounds awesome. I'd try that if I had any spare time during school. :-D 18:08
wknight8111 it's not for everybody. It was a huge drain on my time. 18:09
I'm sure if you spend that much time just studying, you'd see plenty of benefits too
18:30 davidfetter joined, bluescreen left, davidfetter left 18:45 mj41 left 18:49 plobsing joined
plobsing ~~ 18:50
wknight8111 plobsing! 18:51
I was starting to worried you had disappeared
18:52 plobsing is now known as invizibl_plobsing
invizibl_plobsing now you see me, now you don't 18:52
wknight8111 plobsing: benabik needs to add some NCI thunks for his GSoC project. I figure this is a poster-child example for how libraries can write their own thunk libraries 18:53
but none of us were sure how to do that
18:53 invizibl_plobsing is now known as plobsing
benabik wknight8111: Wrong GSoC student. I think it was bubaflub 18:54
bubaflub benabik: yes indded.
wknight8111 damnit. You kids nowadays with your "B" names
bubaflub wknight8111: it's hip new thing
wknight8111 well, whoever said what, we something something something with NCI 18:55
plobsing you mean a static thunk dynext?
bubaflub plobsing: without libffi installed, when i try to do an NCI call with the signature vppi it complains that there is no thunk for it 18:56
plobsing bubaflub: yes. this is expected. there is a mechanism for creating additional native libraries of static thunks that can be loaded by parrot at runtime
./parrot_nci_thunk_gen --help # provides the list of options 18:57
you likely want to use the --dynext option
OpenGL uses a dynext-thunk library 18:58
bubaflub plobsing: ok, i'll look at those. thanks.
plobsing: two questions - i've already got a .nci file for ncidef2pir.pl; can i use the same file for parrot_nci_thunk_gen? 19:10
plobsing bubaflub: unfortunately no. the formats are not equivalent. 19:11
19:12 ShaneC joined
bubaflub plobsing: no biggie. second question, and you'll have to pardon my ignorance, but once i get this C file out of the thunk generator what do i do with it? 19:12
19:12 ShaneC left
wknight8111 plobsing: okay, so "./parrot_nci_thunk_gen --dynext foo.nci"? 19:12
and then load that into the code with loadlib? 19:13
(I want to add this to distutils, so I want to make sure I have the process straight)
plobsing bubaflub: you compile it into a shared library which parrot can load (using parrot_config to work out the platform-specific way to do that)
bubaflub plobsing: ok, that makes sense. 19:14
plobsing wknight8111: not quite. "./parrot_nci_thunk_gen -o foo.c --dynext <foo.nci" (untested) 19:15
wknight8111 okay. That builds the .c file, and I use parrot_config to magic that into a dynext? 19:16
that's reasonable
and the key step still being to load it into Parrot with loadlib_p_s? 19:17
plobsing bubaflub: my advice for an NCI-heavy project such as your GSoC would be to use the dynamic (libffi) framebuilder for exploratory work and then develop the static signatures in one go (possibly automatically by tracing the dynamic framebuilder) 19:18
wknight8111: yes loadlib should work (and call the appropriate magic loader function)
wknight8111 okay, awesome 19:19
19:21 jsut joined 19:23 mj41 joined, hercynium left 19:24 contingencyplan joined 19:26 jsut_ left
bubaflub plobsing: ok, yeah. i can use libffi for now and keep pressing forward but later i'd like it to not be a dependency for the project. 19:35
plobsing: at that point i'll probably harass you again for more NCI knowledge.
mikehh All tests PASS (pre/post-config, make corevm/make coretest, make world/make test, fulltest) at 3_4_0-143-g7bd5b4f 19:36
Kubuntu 11.04 amd64 (g++ --optimize)
cotto_work bubaflub: you can use it without it being a hard dependency. You'll just need to make sure that the right thunks get generated once the project is complete-ish.
bubaflub cotto_work: o rly? do tell... 19:37
cotto_work libffi is the internal thingy that generates thunks. From a user perspective, there's no difference between a libffi-enabled parrot and non-libffi parrot that has all the necessary nci thunks built in. 19:38
using libffi will make development easier without limiting your future possibilities. 19:39
bubaflub cotto_work: so you're saying i could use libffi to make my thunks and just commit em to the repository so end users don't have to have libffi installed?
cotto_work bubaflub: not quite. I'm saying you can use libffi to automatically generate the necessary thunks at runtime so you don't have to spend a bunch of time manually figuring out the right thunks. 19:40
bubaflub cotto_work: ah, ok. that's what i'm doing now. 19:41
dukeleto is going to get bubaflub++ a tshirt that says "Thunk master"
cotto_work Once you're ready to cut a release, you trace out which thunks libffi generates and make sure that static thunks get generated for those signatures.
bubaflub cotto_work: ok, that sounds great.
cotto_work ilbffi is nice like that
bubaflub cotto_work: any tips on how to do the tracing? 19:42
cotto_work bubaflub: probably just hack the nci code to spit any signatures it generates to a file 19:43
bubaflub cotto_work: sounds good.
cotto_work I don't know which function you'd want to hack off the top of my head, but it shouldn't be too hard to find. If it is, that's what mentors and #parrot are for. ;) 19:44
wknight8111 src/nci/libffi.c, I think 19:45
or something that looks like that
19:48 lucian left 19:49 lucian joined
bubaflub thanks all; i'll take a look in those places 19:51
wknight8111 bubaflub++ 19:52
bubaflub wknight8111: lemme know if i can help with Winxed docs, distutils thunk generation, or more NCI docs 19:54
wknight8111 bubaflub: thanks for the offer! I'm going to start throwing together some prototypes soonish, and we'll get more eyes on it to correct my mistakes 19:55
I'll write the first draft of the winxed docs in lolspeak, just to get my thoughts down on paper 19:58
after that we can revise it into something less stupid
my brain runs on lol natively 19:59
msg NotFound if I write up some docs for Winxed, would you like to host them in the winxed repo? 20:03
aloha OK. I'll deliver the message.
bubaflub wknight8111: sounds good. i've been copying/studying Plobsing++'s ZeroMQ on how to do some Winxed stuff.
wknight8111 bubaflub: yes, that's a good source for info
NotFound wknight8111: I'm working on a way of providing doc, probably out of the main repo. 20:06
bubaflub dukeleto: i've added two milestones to the github issues to track stuff that is due at midterm and stuff that is due at the end of the program.
wknight8111 NotFound: okay. Whereever they go, I'm willing to do a lot of work writing them
NotFound wknight8111: What format are you using to werite it? 20:07
wknight8111 I may just include copes on the rosella webpage too
NotFound: whatever format you want
(please say "lolcode"!!)
:)
bubaflub CAN HAZ DOCS? 20:08
NotFound I've a half-working thing in html/css/javascript, I was thinking about using that. 20:09
But I think I already have too much projects, it will be better a more traditional approach. 20:10
wknight8111 NotFound: I'll start writing up the docs in Markdown, since that's what I'm most comfortable with. Markdown translates to HTML so we can get that easily if we want 20:11
NotFound wknight8111: I don't know markdown, but if you are comfortable with it, fine. 20:12
wknight8111 NotFound: it's basically plain-text, although links are a little funny 20:13
I promise I won't do anything that's unreadable, and I'll translate to any format you want
NotFound wknight8111: a github repo under parrot may be the appropiate place. 20:14
wknight8111 ok
bubaflub especially if winxed is going to be snapshotted into the parrot repo 20:19
20:24 wknight8111 left 20:32 fperrad left 20:35 mj41 left 20:37 hudnix left
bubaflub NotFound: does winxed support any inline documentation besides line comments? 20:46
NotFound bubaflub: that depends on what you mean by "support". For example, you can insert pod if you put it inside comments. 20:48
bubaflub NotFound: would the generated PIR file then have the pod? 20:49
NotFound bubaflub: no
bubaflub NotFound: ok. hmmmm. i'm not sure what i should comment on since i'll be including both the .winxed and the resulting .pir
NotFound: how should i include pod in commments? something like # =head1 ? 20:52
20:52 hercynium_ joined
NotFound bubaflub: yoi can put in in C-style comments 20:52
20:53 hercynium_ left
bubaflub NotFound: great, thanks 20:54
NotFound I think pod parsers will not recognize the = if not at the start of line.
bubaflub NotFound: you're correct. thanks again. i'll probably just put POD in the .winxed as the .pir is only there to be compiled to .pbc 20:55
20:57 davidfetter joined
NotFound bubaflub: yes, that's the idea, using pir is just a convenience. 20:59
bubaflub NotFound: i gotta say i'm liking Winxed more and more everyday. makes OO stuff stupidly simple.
21:00 bubaflub left
NotFound bubaflub: thanks, that is a design goal. 21:00
21:04 dafrito left 21:05 lucian left 21:06 bluescreen joined 21:12 lucian joined 21:25 dodathome left 21:28 bluescreen left 21:29 rohit_nsit08 joined 21:34 davidfetter left 21:43 jsut_ joined 21:46 Psyche^ joined 21:48 jsut left 21:51 Patterner left, Psyche^ is now known as Patterner 22:03 alester left 22:28 bubaflub joined 22:42 soh_cah_toa joined 22:43 davidfetter joined 22:47 dmalcolm left
lucian noob question: how do i generate .pbc? parrot -c doesn't do that 22:58
sorear parrot -o
lucian sorear: ah, thanks 23:02
cotto_work jnthn__: ping 23:08
jnthn__ cotto_work: pong 23:12
cotto_work jnthn__: I have a patch for Parrot for the invokable bug you mentioned that seems to work. How much of spectest_regression do you expect nom to pass? 23:14
jnthn__: I'm also trying the patch with Parrot master, but I suspect it'll break something. 3.4.0 has been working fine.
jnthn__ cotto_work: Oh, it won't pass any. 23:16
cotto_work: nom is too early for that.
cotto_work: You could try it against Rakudo master. 23:17
cotto_work jnthn__: phew
jnthn__ As it shouldn't cause any regresison there.
cotto_work I'll give the patch some more testing and if everything looks good, put it in master. 23:18
jnthn__: just to verify, I should build nqp master and use that on Rakudo's nom branch, where I should run the example you gave me, right? 23:19
jnthn__ cotto_work: Yes 23:20
cotto_work: You can do in nom perl Configure.pl --gen-parrot --gen-nqp
23:20 hudnix joined
jnthn__ cotto_work: And it should build all that's needed. 23:20
cotto_work jnthn__: ok. I was using --gen* to get an initial known-good configuration but then switching to installed versions so Parrot's easier to fiddle with. 23:23
looks like it works 23:24
jnthn__ yay 23:25
cotto_work++
23:25 theory left 23:28 rohit_nsit08 left
dalek nxed: r1028 | NotFound++ | trunk/winxedst0.cpp:
fix ArrayExpr items emision in stage 0
23:32
nxed: r1029 | NotFound++ | trunk/t/basic/02arrayexpr.t:
basic tests for array expresions
23:43
23:46 tty234 joined