Parrot 1.7.0 "African Grey" is out! | Fix issues caused by the pcc_reapply and context_auto_attrs merges | find out what's up with the slice opcode | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 1 November 2009.
00:16 eternaleye joined
Coke parrot: Branch has been merged into trunk and? 00:24
purl Branch has been merged into trunk and is, like, no longer needed at HEAD
Coke AND THEN?
and then is <reply>NO AND THEN\\!\\?
and then?
RT: 55! 00:29
purl 1.26964033536583e+73
Tene wow, we must have a lot of RT tickets... 00:30
00:51 bacek joined
dalek rrot: r42343 | jkeenan++ | branches/configtests (2 files):
Convert config step from get_p5('OSNAME') to get('osname'). Convert corresponding configuration step test file.
00:53
rrot: r42344 | jkeenan++ | branches/configtests/t/steps/gen/platform-01.t:
Explicit number of tests in plan.
rrot: r42345 | jkeenan++ | branches/configtests/t/steps (10 files):
Continue to convert steps tests to use of Parrot configuration data. The

  (F) because their corresponding config step classes still use
  '$conf->data->get_p5('some_attribute')'.:
t/steps/init/optimize-01.t t/steps/auto/alignptrs-02.t (F) t/steps/auto/headers-01.t t/steps/auto/signal-01.t t/steps/auto/perldoc-01.t t/steps/auto/pod2man-01.t
01:00
01:01 payload joined
kid51 Tests listed above as having problems: that's in the configtests branch, not in trunk 01:01
bacek G'Day 01:22
dalek rrot: r42346 | bacek++ | branches/pmc_headers_move/config/auto/pmc.pm:
Fix more dependencies in Makefile
01:23
rrot: r42347 | jkeenan++ | branches/configtests/Configure.pl:
POD formatting corrections only.
01:30
rrot: r42348 | jkeenan++ | trunk/Configure.pl:
POD formatting corrections only.
01:33
rrot: r42349 | jkeenan++ | branches/configtests/Configure.pl:
POD formatting corrections only.
01:39 eternaleye joined 01:49 ilbot2 joined
moderator Parrot 1.7.0 "African Grey" is out! | Fix issues caused by the pcc_reapply and context_auto_attrs merges | find out what's up with the slice opcode | Latest modified TT's: icanhaz.com/parrotbugs
dalek rrot: r42350 | pmichaud++ | trunk/src/pmc/codestring.pmc:
[pmc]: Fix the 'lineof' method of CodeString to be friendlier to utf8.

be able to optimize future searches, the optimization was only helpful for fixed-width string encodings. For utf8, the net result was to nearly always have to do a scan from the beginning of the string, which quickly becomes an O(n**2) operation. This change CodeString so that the first execution of 'lineof' caches a FixedIntegerArray of all line starting positions in the CodeString. Subsequent requests for line numbers during codegen then become much faster -- for Rakudo-ng it reduces a previously 150-second compile of Actions.pm to under 15 seconds.
01:53
pmichaud grrr, change*s* 01:54
can't type anymore.
oh well.
oh, and it's a ResizableIntegerArray. 01:56
commet message FAIL.
*commit
pmichaud FAIL.
(at least I can say that compiling actions.pm is 10x faster than it was yesterday.) 01:57
jonathan Epic optimization beats typing fail. 02:04
pmichaud I'm still interested to see how much this speeds up rakudo master 02:06
it probably won't speed up the build by much, but it'll certainly speed up the unicode-containing spectests by a lot 02:07
mmmm, nqp tests are now nicely faster
02:08 tetragon joined
bacek kid51, ping. 02:12
dalek rrot: r42351 | bacek++ | branches/pmc_headers_move/t/tools/pmc2cutils/05-gen_c.t:
[t] Make include and include/pmc directories during test.
02:13
p-rx: e8e145d | pmichaud++ | src/Regex/Cursor.pir:
Remove no-longer-used $!type attribute. (It may get replaced with
02:16
p-rx: 95cd73d | pmichaud++ | src/cheats/hll-compiler.pir:
Provide transcoding logic to HLL::Compiler, so that it can

for faster parsing, when possible.
p-rx: 238f21b | pmichaud++ | (5 files):
Bump PARROT_REVISION, update bootstraps.
02:18 RobertLJ joined
dalek TT #1234 created by jkeenan++: t/op/hacks.t: Delete useless test file 02:34
kudo: 37d480a | (Solomon Foster)++ | src/setting/Str.pm:
Add Str.Str, with a caveat.
02:57
TT #1235 created by jkeenan++: t/op/sysinfo.t: Improper dependence on Perl 5 %Config 03:01
rrot: r42352 | jkeenan++ | branches/auto_format_no_Config:
Create a branch to remove dependency on %Config in step class and associated
03:23
03:29 bacek joined 03:35 janus joined
dalek rrot: r42353 | jkeenan++ | branches/auto_format_no_Config (3 files):
Eliminate direct lookup from Perl 5 %Config. Do lookup in init::defaults and use results in auto::format. Adjust step test accordingly.
04:06
TT #1236 created by jkeenan++: config/auto/format.pm: Replace direct dependence on Perl 5 %Config 04:18
p-rx: 57d2a44 | pmichaud++ | src/NQP/ (2 files):
Add <block> subrule.
04:39
p-rx: 5559916 | pmichaud++ | (3 files):
Add closure interpolation.
diakopter purl, and then is <reply>NO AND THEN\\!\\? 04:44
purl i haven't a clue, diakopter
diakopter purl, and then is <reply>NO AND THEN\\!\\?\\!
purl ...but then is <reply>NO AND THEN!...
Coke diakopter: he already has it. 04:48
^_^ 04:49
diakopter heh 04:51
I thought purl was a she 04:52
Tene purl: gender?
purl purl is an amorphous blob of genderless protomatter roughly comprised in the shape of a houseplant
Tene purl: gender?
purl purl purl purl is a girl girl girl girl
Tene purl: gender?
purl purl purl purl is a girl girl girl girl
Tene purl: gender?
purl If you have to ask, you dont want to know....
Tene etc.
diakopter oh
i !c
so if I want to generate a bunch of PAST myself.. how can I feed it to parrot 04:53
can it take it in a textual format? or in-memory only?
Tene diakopter: There have been repeated requests for someone to write a textual emitter/parser for PAST. 04:54
But nobody has done it yet.
diakopter oh
Tene It would be GREAT to get a PAST compiler.
I've seen people start working on it in json, yaml, xml, and I think something else...
diakopter yeah, b/c then I could compare it with my PAST interpreter
Tene but no working implementation. 04:55
diakopter apples<->apples
Tene Well... we HAVE a PAST compiler... just no PAST reader.
diakopter I don't know whether you saw, I'm working on a PAST interpreter ... 04:56
Tene We have a JSON reader... so if you want to define a JSON repr of PAST, and write a JSON->PAST convertor... that wouldn't be too bad.
I didn't saw.
diakopter well, as I was discussing with pmichaud, some things that generate PAST (rakudo) generate PAST with inter-references (possibly recursive and otherwise)... 04:57
so for my purposes, the JSON representation either needs to know about symbolic references to other objects by id, a la yaml, or actually be javascript that wires up the references properly in the resulting object literal 04:58
Tene which both json and yaml can handle, iirc.
diakopter no
not json
Tene (not certain about json)
ah
then go write a yaml compiler? >.>
diakopter I wrote a Perl 5 routine (in pugs/src/perl6/ToJS.pm) that emits arbitrary Perl 5 hashes/arrays/strings/integers (with inter-references) to JavaScript... also I ported it to JavaScript 05:00
so I'll stick with that for now...
Tene You could check out the state of javascript on Parrot...
There's been two attempts, I think? 05:01
diakopter I saw one on gcode that was abandoned a year ago, and another that's javascript/actionscript-like...
but I like V8
as a VM 05:02
Tene I thought you were wanting to compare it to the official PAST compiler in Parrot.
diakopter yes
my PAST interpreter is in JavaScript..
Tene I think we're talkin gpast each other. I'll stop now. :) 05:03
diakopter I'm sure it's my fault.. I want to compare my past interpreter (written in js) to the programs produced by parrot's past compiler 05:04
performance and equivalency and all that
e.g. 05:05
I'm not worried about interoperability for now..
Tene diakopter: And, therefore, I was recommending that you look into making a paintext PAST format, and a loader for Parrot, so we can run the same PAST from either Parrot or your interpreter. 05:07
05:10 eternaleye joined
diakopter right, and I mentioned the interreference problem - which a plaintext PAST format would have to solve in some way if that class of PAST needed to be handled 05:11
however, it's not strictly necessary
so a JSON-based one would do
(broken link here): www.perlfoundation.org/parrot/index...javascript 05:13
hm
(google search results) 05:14
eternaleye As far as a PAST reader goes, wouldn't it be best to make it read the same format as --target=past writes, so that it can roundtrip? 05:21
diakopter yeah, or also write another --target
eternaleye Maybe I could write an nqp-rx grammar for that format... 05:22
diakopter :)
05:51 eternaleye joined 05:56 mikehh joined 06:23 Essobi joined 06:26 kurahaupo joined
dalek p-rx: ee6743c | pmichaud++ | src/NQP/ (2 files):
Convert package_def to use <block> instead of <pblock>.
06:30
p-rx: 1e2187a | pmichaud++ | t/nqp/38-quotes.t:
Fix bug in interpolated closure test.
p-rx: 457fa04 | pmichaud++ | src/NQP/Actions.pm:
Update handling of block arity.
p-rx: 992b220 | pmichaud++ | (3 files):
Enable pointy blocks.
06:49 chromatic joined
diakopter chromatic: hi 06:51
chromatic hi 06:54
purl salut, chromatic.
diakopter looks at making nqp-rx emit certain PAST 07:07
07:24 dngor joined 07:48 davidfetter joined 08:16 eternaleye joined 08:28 fperrad joined 08:31 bacek joined
dalek rrot: r42354 | fperrad++ | trunk (6 files):
[mt19937] this library leaves the nest.

and soon available via Plumage.
08:46
09:04 iblechbot joined
dalek rrot: r42355 | bacek++ | branches/pmc_headers_move/tools/dev/checkdepend.pl:
Fix checkdepends.pl script to handle includes little bit more correctly.
09:12
rrot: r42356 | bacek++ | branches/pmc_headers_move/lib/Parrot/Pmc2c/PMCEmitter.pm:
Put proper #include "pmc/pmc_default.h" in generated .c from .pmc files.
rrot: r42357 | barney++ | trunk/NEWS:
Added stub von news in 1.8.0.
09:28
rrot: r42358 | bacek++ | branches/pmc_headers_move/tools/dev/checkdepend.pl:
Check generated .c files from .pmc in checkdepend.pl
09:45
09:49 whoppix joined
dalek kudo: 97ced10 | moritz++ | t/spectest.data:
[t/spectest.data] track file rename
10:11
rrot: r42359 | bacek++ | branches/pmc_headers_move/MANIFEST.generated:
Fix MANIFIEST.generated to install proper pmc_foo.h files.
10:21 joeri joined
dalek rrot: r42360 | bacek++ | branches/pmc_headers_move/config/inter/encoding.pm:
Add unicode.h into string encoding dependencies.
10:31
rrot: r42361 | bacek++ | branches/pmc_headers_move/config/inter/charset.pm:
Add tables.h into charset files dependencies.
rrot: r42362 | bacek++ | branches/pmc_headers_move/config/gen/makefiles/root.in:
Fix inter_create and inter_misc dependencies.
rrot: r42363 | bacek++ | branches/pmc_headers_move/config/gen/makefiles/root.in:
Add dependency to context.h from pmc_context.h
10:51
rrot: r42364 | bacek++ | branches/pmc_headers_move/config/auto/pmc.pm:
Use PMC_INC_DIR variable in dependencies instead of hardcoded "include/".
10:59 bacek joined 11:16 mikehh joined
dalek rrot: r42365 | fperrad++ | trunk (4 files):
[library] add initial implementation of distutils.pir
11:31
11:33 mikehh joined 11:37 payload joined 11:55 masak joined 12:19 Whiteknight joined
Whiteknight good morning #parrot 12:20
12:29 mikehh joined 12:40 kj joined
dalek rrot: r42366 | kjs++ | trunk/src/global.c:
[src] update RT# ticket no to TT# ticket no.
12:49
TT #1237 created by kjs++: docs/parrotbyte.pod && docs/pdds/pdd13_bytecode.pod are either ... 12:54
TT #1238 created by kjs++: SDL tests 12:57
TT #1239 created by kjs++: configuration: define MIN/MAX macros for all integral typedefs 13:00
TT #1240 created by kjs++: Explicitly clearing to be RO? 13:04
TT #1241 created by kjs++: implementation of is_docs_link() needs more thought 13:07
13:12 kid51 joined
dalek rrot: r42367 | jkeenan++ | trunk/lib/Parrot/Configure/Trace.pm:
Adjust documentation re number of config steps. Correct spellingn error.
13:22
rrot: r42368 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add a step for pod2html
13:26
Whiteknight purl msg darbelo I'm thinking about how we're going to handle vectors and vector operations. Do we create a vector type, or do we add vector behavior to NumMatrix2D 13:38
purl Message for darbelo stored.
Whiteknight purl msg desertm4x I'm thinking about how we're going to handle vectors and vector operations. Do we create a vector type, or do we add vector behavior to NumMatrix2D
purl Message for desertm4x stored.
moritz if you store vectors as N x 1 or 1 x N matrices, then the scalar product returns a 1x1 matrix, not a scalar 13:39
just a data point, not a vote ;-)
dalek rrot-linear-algebra: c57d220 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
several code cleanups throughout NumMatrix2D
13:41
rrot-linear-algebra: 1a701b7 | Whiteknight++ | (2 files):
fix init_from_pmc_array helper function. add tests for new initialize_from_args method
rrot-linear-algebra: cd12c50 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
create add and multiply MULTI variants that take Float PMCs instead of NumMatrix2D PMCs as the multi arg
rrot-linear-algebra: eddd6b9 | Whiteknight++ | t/10-nummatrix.t:
add tests for VTABLE_add(Float)
rrot-linear-algebra: e3edb2b | Whiteknight++ | t/10-nummatrix.t:
add tests for VTABLE_multiply(Float)
Whiteknight moritz: yes, lots of issues regarding scalar/vector/matrix 13:42
moritz for a phycisit a vector is also different froma 1 x N matrix, because it's defined by its transformation properties 13:43
Whiteknight: I used the "eigen" linear algebra lib (C++); if you want to discuss general design decisions, I'm sure they are happy to share their experience 13:44
#eigen on freenode
the channel is not as lively as ours, but if bjacob or ggael are online, shoot! 13:45
;-)
Whiteknight oh, nice 13:47
thanks
moritz they can do a lot at compile time 13:48
because they ues expression templates
so they unroll small matrix products at compile time, and then it's simple for the compile to enable SSE
NotFound Feel the power of C++ ;) 13:52
moritz aye ;-)
though sometimes it's a bit scary
Whiteknight parrot-linear-algebra uses the BLAS library internally, so we don't worry about too many of those kinds of optimizations 13:54
we mostly try to provide storage and interfaces
14:04 yjh joined 14:10 mikehh joined 14:18 payload joined
dalek rrot: r42369 | jkeenan++ | trunk/lib/Parrot/Configure/Trace.pm:
Eliminate one synthetic variable. Clarify documentation of one method.
14:34
14:41 masak joined 14:49 kthakore joined
kthakore kj: are you kjs? 14:52
kid51: hi 14:53
purl hello, kthakore.
15:01 Whiteknight joined
kj kthakore: kj=kjs 15:02
kj?
purl you are, like, Klaas-Jan Stol or mailto:parrotcode@gmail.com
kj purl, kj is also known as kjs
purl okay, kj.
kj kjs?
kj? 15:03
purl somebody said kj was Klaas-Jan Stol or mailto:parrotcode@gmail.com or known as kjs
kj kjs?
purl, kjs is also known as kj
purl okay, kj.
kj kjs?
kthakore kj: hi so I am the sdl perl(5) dev
kj oh hi
kthakore kj: I have been working on getting complete XS bindings for XS 15:04
kj: so we have a lot of tests (almost a 1000 now)
kj i think i moved a ticket to trac today about that
kthakore kj: yup hence I am talk to you
kj: :). Anywho if we can start porting those test we can also see what SDL Parrot is lacking 15:05
kj i just migrated it, i have no particular knowledge of it...
kthakore kj: ah ... ok
kj sorry :-)
kthakore guess I will be the one to take the ticket in a few months time
kj or now :-)
kthakore kj: I just got excited that someone was working on it
kj yes, i had no intention to take the ticket, justhelping Coke++ to do the migration from RT to trac 15:06
kthakore: i know the feeling ;-)
kthakore kj: I am working on Perl5/XS right now
kj: excitement is a humon feeling
oh well
gtg for food
kj enjoy :-) 15:07
15:19 s1n joined 15:23 Psyche^ joined 15:26 Whiteknight joined
Whiteknight how do I add a local repo to github? 15:26
I tried doing the process i thought I knew, but it didn't work this time 15:27
git remote add origin git@github.com:Whiteknight/projectname.git
git push origin master
kthakore Whiteknight: did you make your new repo on gihub? 15:28
and did you make a commit first >
Whiteknight I didn't think you needed to make it on github first
kthakore Whiteknight: you do
Whiteknight at least, I think I was told that, and I can't find a place to make a new one
kthakore Whiteknight: click on new repo
click on dashboard
Whiteknight: the under next to Your Repositories 15:29
click New Repository
Whiteknight ah shit, I see that now.
thanks kthakore++
kthakore Whiteknight: np 15:30
then do
what you were doing
Whiteknight awesome, done 15:31
thanks
kthakore Whiteknight: ooh nice 15:50
mediawiki-bookdesigner
dalek rkdown: 4dbe82f | fperrad++ | setup.pir:
add setup.pir (distutils)
16:03 tetragon joined
dalek l: 486054d | fperrad++ | Makefile.in:
clean up
16:09
purl i heard clean up was a breeze
l: 3cb3d6f | fperrad++ | setup.pir:
add setup.pir (distutils)
rrot: r42370 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add stuff for pge, nqp, pbc_to_exe
16:13
16:14 plobsing joined 16:15 particle joined 16:28 markmont joined
dalek rkdown: c83f1b9 | fperrad++ | setup.pir:
add a step spectest
16:30
16:57 theory joined
dalek l: 0bf1382 | fperrad++ | setup.pir:
chmod +x
17:13
rkdown: bc5f050 | fperrad++ | setup.pir:
chmod +x
17:16
17:33 cognominal joined 17:40 cognominal joined
dalek TT #1242 created by jkeenan++: t/pmc/io_iterator.t: Overhaul tests 17:41
17:44 payload joined 17:46 davidfetter joined
dalek rrot: r42371 | jkeenan++ | trunk/t/pmc/io_iterator.t:
Change RT # to TT # in several locations.
17:48
purl dalek: that doesn't look right
17:54 supergiantrobot joined 17:56 supergiantrobot left 17:57 payload1 joined
kurahaupo I'm back looking at converting tests to PIR, and I've hit a snag: how do I check if some feature (such as libgmp) was included when Parrot was built? Perhaps, is there any way to access %PConfig from within Parrot? 18:14
18:14 nbrown_ joined
dalek TT #1243 created by jkeenan++: Parrot::Test with --run-exec assumes "." is in $PATH 18:14
pmichaud kurahaupo: yes, there is
interp = getinterp 18:16
config = interp[.IGLOBALS_CONFIG_HASH]
18:16 mokurai joined 18:18 patspam joined 18:19 xenoterracide joined
kurahaupo pmichaud: thanks 18:19
kurahaupo is leaving for $DAYJOB 18:20
kid51_afk msg kurahaupo 'ack -l '#!parrot' t' will give you a list of test files converted to PIR that may be useful as models 18:21
purl Message for kurahaupo stored.
18:27 chromatic joined 18:42 PacoLinux joined 18:47 bacek joined
dalek TT #1244 created by jkeenan++: compilers/imcc/cfg.c: emit warning in propagate_need() 18:47
TT #1245 created by jkeenan++: src/pmc/integer.pmc: Check overflow for -maxint in absolute() 18:57
rrot: r42372 | jkeenan++ | trunk/src/pmc/integer.pmc:
Change RT # to TT #.
purl dalek: that doesn't look right
rrot: r42373 | jkeenan++ | trunk/compilers/imcc/cfg.c:
Change RT # to TT #.
19:01
purl dalek: that doesn't look right
19:01 he__ joined
Tene japhb: ping 19:18
19:19 selenamarie joined
Tene japhb: nm, mistake on my part. 19:20
japhb: why is plumage asking me for sudo privs to install something? 19:27
Tene RTFS 19:30
19:35 cghene joined 19:36 cognominal joined
Tene okay, in NQP right now, "our %FOO" results in "set_global "%FOO"", but then using %FOO results in get_hll_global "FOO". 19:49
he__ Hm, there's probably a "portability to NetBSD" problem uncovered by t/pmc/nci.t, ref. smolder.plusthree.com/app/public_pr...st_failure
Tene oh, nm, my mistake again. 19:51
dukeleto 'ello
Tene sickhacking is harder than sleephacking, apparently.
dukeleto: afaict, current plumage isn't getting %VM initialized correctly, so plumage can't find the bindir, so can't test it, so tries to install with sudo. 19:52
dukeleto msg kurahaupo t/dynpmc/rational.t is a good example for checking for GMP and then running tests conditionally 19:53
purl Message for kurahaupo stored.
he__ Looks like it tries to load /usr/pkg/lib/libparrot.so.1.7.0, but it's not yet installed. 19:54
dukeleto msg kurahaupo look at t/op/arithmetics.t for a PIR example of checking for GMP
purl Message for kurahaupo stored.
he__ This is "make && make smoke" failing, without having done "make install" of this particular version.
Pilot error? (Didn't think so) 19:55
<- suspecting missing use of rpath again... 19:56
20:04 bacek joined
Tene dukeleto: nm, the problem was that something was asking for the "bin_dir" element instead of "bindir". 20:09
NotFound: ping 20:15
dukeleto Tene: ok, let me know if you need other plumage help 20:16
NotFound Tene: pong 20:18
Tene NotFound: is mysqltest.pir in parrot-mysql known to fail? I had to make a few changes to get it to work.
nopaste "tene" at 24.10.252.130 pasted "changes to Mysql.pir" (17 lines) at nopaste.snit.ch/18602 20:19
NotFound Tene: last time I tried it failed and not located why.
Tene Can you commit that patch, or give me commit privs to do it?
NotFound Tene: It works just with that? I had other problems. Let me try... 20:20
nopaste "tene" at 24.10.252.130 pasted "seems to work for me, except the segfault at the end" (12 lines) at nopaste.snit.ch/18603 20:21
NotFound Tene: I've not decided yet if I'm going to continue with the pir version or replace with a new written in winxed.
Ah, yes, the segfault is the problem. 20:22
Tene If you abandon the PIR version, I'll take it up, fwiw.
NotFound I think is related to a generic order or destruction problem at parrot exit.
Tene: Ok, I'm going to give you commit bits, then.
Tene: google account? 20:23
dalek rrot: r42374 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] more versatible interface,
20:24 mikehh joined
Tene at allalone.org 20:24
NotFound Tene: done 20:25
20:33 chromatic joined
plobsing he__: what makes you think its libparrot that fails to load? looks like libnci_test from the TAP 20:44
20:45 AndyA joined
dalek rrot: r42375 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] fix r42374
20:46
rkdown: 6493ed9 | fperrad++ | setup.pir:
use string instead of a array of one string
bacek Good morning 20:50
mikehh hi bacek 20:56
bacek hi mikehh
21:16 jan joined 21:22 pdcawley_ joined 21:29 mikehh joined
he__ plobsing: I first did a "ktrace -i perl t/harness t/pmc/nci.t" (system call trace), and looked at the output of "kdump". "ldd ./runtime/parrot/dynext/libnci_test.so" confirms that it can't find libparrot.so.1.7.0: "-lparrot.1.7.0 => not found". 21:32
An inspection of the build log confirms that no run-path is set up to reach the in-tree libparrot.so.1.7.0. 21:33
"in-tree" as "inside the build tree". 21:34
plobsing hmmm. I don't think libnci_test.so depends on anything in libparrot. 21:36
he__ It's linked with "-lparrot -Wl,-R/usr/pkg/lib" in my case. 21:37
...and with "-L/usr/users/he/parrot/blib/lib", but that doesn't fix the run-time behaviour on this platform. 21:38
It needs rpath to be set.
... to blib/lib.
chromatic It uses PARROT_DYNEXT_EXPORT from parrot/config.h, but no code from libparrot.so. 21:39
plobsing remade libnci_test.so without $(ALL_PARROT_LIBS) flag. t/pmc/nci.t passes 21:41
s/flag/argument/
he__ So, that's a tweak to gen/makefiles/root.in, right? 21:43
eh, config/gen/makefiles/root.in
chromatic That's right. 21:44
he__ OK, let's see where that gets us.
plobsing yes. I did a quick hack on the makefile. testing the full solution now 21:45
21:47 mikehh joined 21:51 mikehh joined
he__ Much better, back to the known suspects at smolder.plusthree.com/app/public_pr...st_failure 21:59
nopaste "plobsing" at 76.67.61.178 pasted "libnci_test makefile fix" (13 lines) at nopaste.snit.ch/18604 22:10
chromatic Testing now; will commit in a moment. 22:15
Thanks for the patch; good debugging, both of you. 22:19
dalek rrot: r42376 | chromatic++ | trunk/config/gen/makefiles/root.in:
[config] Removed unnecessary dynlib linking for libnci_test; this causes test
22:21
ttbot Parrot trunk/ r42376 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/136871.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) 22:27
NotFound Tene: I've commited your fix, and added a workaround that avoids the segfault. 22:29
plobsing to fix openbsd, I broke windows. wonderful! 22:32
Tene notfound++
he__ Eh, my platform is NetBSD, but ... same difference, I guess. 22:33
NotFound But the winxed version looks better, anyway ;)
dalek rrot-mysql: r13 | julian.notfound++ | trunk/src/Mysql.pir:
fix provided by Tene++ and workaround for a problem with mysql_init and null
purl pointers are shiny!
he__ Hm, so why does PMC_IS_NULL() generate a "undefined symbol" issue on Win32, but not on other platforms? 22:37
plobsing perhaps if it is not loaded, it is simply null. 22:38
NotFound he__: most probably because someone is using the wrong headers
plobsing looking at it, pmc != NULL should be good enough 22:39
there is no way (currently) that the frame builder can insert a PMCNULL there
whether or not there should be a way for that to happen is another story...
NotFound What's the program with the problem? 22:40
plobsing libnci_test.so fails to link on windows
he__ src/nci_test.c line 751
NotFound Oh, again.
I hate that file. 22:41
he__ chromatic committed a fix which removed $(ALL_PARROT_LIBS) from the linking of libnci_test.so, which turned out to trigger a problem on NetBSD, because no run-path was set to find the in-build-tree libparrot.so.1.7.0. 22:42
plobsing said libnci_test.so should not need to use the parrot library, so it got removed instead of adding a conditional run-path to blib/lib to find the in-build-tree libparrot.so.1.7.0. 22:43
plobsing it appeared that libnci_test didn't depend on libparrot, but apparently, it uses PMCNULL
NotFound Change that PMC_IS_NULL to PMC_is_null 22:45
purl NotFound: that doesn't look right
plobsing NotFound: isn't that a function in libparrot? 22:46
the problem is we are no longer linking against libparrot 22:47
NotFound The we can't check for PMCNULL in any reasonable way.
22:48 mokurai joined
plobsing exactly. but the frame builder won't insert a PMCNULL there. so only PIR code can trigger that. and the null check should occur in PIR in those cases. 22:48
he__ Maybe I should follow the alternative route of conditionally adding a proper run-path to the libnci_test.so library?
plobsing he__: thats probably the more correct solution 22:49
he__ ok, I'll see if I can untangle where that fix goes.
NotFound And I even think that that test is checking the wrong thing, and that is the root of other ptoblems. The argument must be NULL, no PMCNULL.
External libraries have nothing to do with a PMCNULL.
plobsing except the signature is "vP", which indicates the called function knows how to deal with PMCs 22:50
NotFound Then the test doesn't make sense at all. 22:51
plobsing it's a really old test. 22:55
NotFound plobsing: where is that thing documented? The PDD just says "A PMC register"
plobsing introduced in 4661 (2003)
NotFound: documentation? we don't need no stinkin' documentation! 22:56
;-)
NotFound To break tests, absolutely not ;)
plobsing yes, nci is underdocumented. but this one is pretty straight forward
it passes through PMCs
unaltered
NotFound Andwe don't have a test for a NULL 'p' ? 22:57
That explains all. 22:58
he__ Hm, I could have wanted to use something set in inter::libparrot (rpath_blib) in init::defaults (where ncilib_link_extra is set) (or at least defaulted)
But ... I guess the order of the steps conspires against that plan.
plobsing NotFound: even though we don't have full coverage, and some tests don't make sense, it was very useful for me when I was making my frame builder 23:01
and I don't want to bloat it too much. it already takes too long to run
NotFound plobsing: Yeah, I hate it but not enough to sentence it to death ;) 23:02
plobsing: we definitely need to check passing and returning values.
null values 23:03
plobsing ok
I'll try to throw something together. but with my luck so far today, I make no promises 23:04
nopaste "he" at 158.38.152.80 pasted "diff to use rpath_blib (if non-null) when linking ncilib to make it find the in-build-tree parrot shared library" (17 lines) at nopaste.snit.ch/18608 23:10
he__ Build still ongoing.
23:15 kj joined
NotFound Verified, a PMCNULL passed to a 'p' gives a PMCNULL 23:15
plobsing hmmm. thats not good 23:20
he__ Hm, that didn't quite work...
NotFound In fact, the workaround I've do recently in parrot-mysql is because of that. 23:21
The workaround is to fake the signature and pass a null string
plobsing wonder when that behaviour changed. because I went out of my way to convert PMCNULL to NULL in 'p' args in the libjit frame builder 23:22
based on what was then being generated in src/nci.c
NotFound plobsing: I suppose that in the calling conventions refactor. And no wonder no one notice because is not tested. 23:23
he__ Bah, syntax error. 23:24
'!=' should be 'ne', "of course". 23:25
23:26 eternaleye joined 23:39 Whiteknight joined
he__ OK, that did it, nopaste to follow. 23:45
(after un-applying the patch to omit ALL_PARROT_LIBS when linking libnci_test.so) 23:46
nopaste "he" at 158.38.152.80 pasted "fixed diff to use rpath_blib (if non-null) when linking ncilib to make it find the in-build-tree parrot shared library" (17 lines) at nopaste.snit.ch/18609
plobsing NotFound: I have a test for 'p' parameters being NULL. It currently fails. will work on the fix. nopasting patch 23:47
nopaste "plobsing" at 76.67.61.178 pasted "NCI 'p' parameter null test" (21 lines) at nopaste.snit.ch/18610
he__ ...and with that it's Good Night from this corner. 23:48
NotFound plobsing: I have a fix semi-done 23:49
plobsing NotFound: modifying tools/build/nativecall.pl? 23:51
NotFound plobsing: yeah 23:54
23:58 payload joined